Bar metrics / quantifytools— Overview
Rather than eyeball evaluating bullishness/bearishness in any given bar, bar metrics allow a quantified approach using three basic fundamental data points: relative close, relative volatility and relative volume. These data points are visualized in a discreet data dashboard form, next to all real-time bars. Each value also has a dot in front, representing color coded extremes in the values.
Relative close represents position of bar's close relative to high and low, high of bar being 100% and low of bar being 0%. Relative close indicates strength of bulls/bears in a given bar, the higher the better for bulls, the lower the better for bears. Relative volatility (bar range, high - low) and relative volume are presented in a form of a multiplier, relative to their respective moving averages (SMA 20). A value of 1x indicates volume/volatility being on par with moving average, 2x indicates volume/volatility being twice as much as moving average and so on. Relative volume and volatility can be used for measuring general market participant interest, the "weight of the bar" as it were.
— Features
Users can gauge past bar metrics using lookback via input menu. Past bars, especially recent ones, are helpful for giving context for current bar metrics. Lookback bars are highlighted on the chart using a yellow box and metrics presented on the data dashboard with lookback symbols:
To inspect bar metric data and its implications, users can highlight bars with specified bracket values for each metric:
When bar highlighter is toggled on and desired bar metric values set, alert for the specified combination can be toggled on via alert menu. Note that bar highlighter must be enabled in order for alerts to function.
— Visuals
Bar metric dots are gradient colored the following way:
Relative volatility & volume
0x -> 1x / Neutral (white) -> Light (yellow)
1x -> 1.7x / Light (yellow) -> Medium (orange)
1.7x -> 2.4x / Medium (orange) -> Heavy (red)
Relative close
0% -> 25% / Heavy bearish (red) -> Light bearish (dark red)
25% -> 45% / Light bearish (dark red) -> Neutral (white)
45% - 55% / Neutral (white)
55% -> 75% / Neutral (white) -> Light bullish (dark green)
75% -> 100% / Light bullish (dark green) -> Heavy bullish (green)
All colors can be adjusted via input menu. Label size, label distance from bar (offset) and text format (regular/stealth) can be adjusted via input menu as well:
— Practical guide
As interpretation of bar metrics is highly contextual, it is especially important to use other means in conjunction with the metrics. Levels, oscillators, moving averages, whatever you have found useful for your process. In short, relative close indicates directional bias and relative volume/volatility indicates "weight" of directional bias.
General interpretation
High relative close, low relative volume/volatility = mildly bullish, bias up/consolidation
High relative close, medium relative volume/volatility = bullish, bias up
High relative close, high relative volume/volatility = exuberantly bullish, bias up/down depending on context
Medium relative close, low relative volume/volatility = noise, no bias
Medium relative close, medium to high relative volume/volatility = indecision, further evidence needed to evaluate bias
Low relative close, low relative volume/volatility = mildly bearish, bias down/consolidation
Low relative close, medium relative volume/volatility = bearish, bias down
Low relative close, high relative volume/volatility = exuberantly bearish, bias down/up depending on context
Nuances & considerations
As to relative close, it's important to note that each bar is a trading range when viewed on a lower timeframe, ES 1W vs. ES 4H:
When relative close is high, bulls were able to push price to range high by the time of close. When relative close is low, bears were able to push price to range low by the time of close. In other words, bulls/bears were able to gain the upper hand over a given trading range, hinting strength for the side that made the final push. When relative close is around middle range (40-60%), it can be said neither side is clearly dominating the range, hinting neutral/indecision bias from a relative close perspective.
As to relative volume/volatility, low values (less than ~0.7x) imply bar has low market participant interest and therefore is likely insignificant, as it is "lacking weight". Values close to or above 1x imply meaningful market participant interest, whereas values well above 1x (greater than ~1.3x) imply exuberance. This exuberance can manifest as initiation (beginning of a trend) or as exhaustion (end of a trend):
Cerca negli script per "high low"
AbdulLibraryLibrary "AbdulLibrary"
The library consists of three sections:
Technical Analysis Functions - A collection of tools commonly used by day traders
Trading Setup Filters Functions - A number of filters that help day traders to screen trading signals
Candlestick Pattern Detection Functions - To detect different candlestick patterns that are used in day trading setups
Note that this would have been possible without the help of @ZenAndTheArtOfTrading as I build-up this library after completing his pine script mastery course so big thanks to him
The content of the library are:-
fibLevels(preDayClose, preDayHigh, preDayLow) Calculates Daily Pivot Point and Fibonacci Key Levels
Parameters:
preDayClose : The previous day candle close
preDayHigh : The previous day candle high
preDayLow : The previous day candle low
Returns: Returns Daily Pivot Point and Fibonacci Key Levels as a tuple
bullishFib(canHigh, canLow, fibLevel) Calculates Fibonacci Levels in Bullish move
Parameters:
canHigh : The high of the move
canLow : The low of the move
fibLevel : The Fib level as % you want to calculate
Returns: Returns The Fib level for the Bullish move
bearishFib(canHigh, canLow, fibLevel) Calculates Fibonacci Levels in Bearish move
Parameters:
canHigh : The high of the move
canLow : The low of the move
fibLevel : The Fib level as % you want to calculate
Returns: Returns The Fib level for the Bearish move
getCandleSize() Calculates the size of candle (high - low) in points
Returns: Returns candle size in points
getCandleBodySize() Calculates the size of candle (close - open) in points
Returns: Returns candle body size in points
getHighWickSize() Calculates the high wick size of candle in points
Returns: Returns The high wick size of candle in points
getLowWickSize() Calculates the low wick size of candle in points
Returns: Returns The low wick size of candle in points
getBodyPercentage() Calculates the candle body size as % of overall candle size
Returns: Returns The candle body size as % of overall candle size
isSwingHigh(period) Checks if the price has created new swing high over a period of time
Parameters:
period : The lookback time we want to check for swing high
Returns: Returns True if the current candle or the previous candle is a swing high
isSwingLow(period) Checks if the price has created new swing low over a period of time
Parameters:
period : The lookback time we want to check for swing low
Returns: Returns True if the current candle or the previous candle is a swing low
isDojiSwingHigh(period) Checks if a doji is a swing high over a period of time
Parameters:
period : The lookback time we want to check for swing high
Returns: Returns True if the doji is a swing high
isDojiSwingLow(period) Checks if a doji is a swing low over a period of time
Parameters:
period : The lookback time we want to check for swing low
Returns: Returns True if the doji is a swing low
isBigBody(atrFilter, atr, candleBodySize, multiplier) Checks if a candle has big body compared to ATR
Parameters:
atrFilter : Check if user wants to use ATR to filter candle-setup signals
atr : The ATR value to be used to compare candle body size
candleBodySize : The candle body size
multiplier : The multiplier to be used to compare candle body size
Returns: Returns Boolean true if the candle setup is big
isSmallBody(atrFilter, atr, candleBodySize, multiplier) Checks if a candle has small body compared to ATR
Parameters:
atrFilter : Check if user wants to use ATR to filter candle-setup signals
atr : The ATR value to be used to compare candle body size
candleBodySize : The candle body size
multiplier : The multiplier to be used to compare candle body size
Returns: Returns Boolean true if the candle setup is small
isHammer(fibLevel, colorMatch) Checks if a candle is a hammer based on user input parameters and candle conditions
Parameters:
fibLevel : Fib level to base candle body on
colorMatch : Checks if user needs for the candel to be green
Returns: Returns Boolean - True if the candle setup is hammer
isShootingStar(fibLevel, colorMatch) Checks if a candle is a shooting star based on user input parameters and candle conditions
Parameters:
fibLevel : Fib level to base candle body on
colorMatch : Checks if user needs for the candel to be red
Returns: Returns Boolean - True if the candle setup is star
isBullEngCan(allowance, period) Check if a candle is a bullish engulfing candle
Parameters:
allowance : How many points the candle open is allowed to be off (To allow for gaps)
period : The lookback period for swing low check
Returns: Boolean - True only if the candle is a bullish engulfing candle
isBearEngCan(allowance, period) Check if a candle is a bearish engulfing candle
Parameters:
allowance : How many points the candle open is allowed to be off (To allow for gaps)
period : The lookback period for swing high check
Returns: Boolean - True only if the candle is a bearish engulfing candle
isBullDoji(maxSize, wickLimit, colorFilter) Check if a candle is a bullish doji candle
Parameters:
maxSize : Maximum candle body size as % of total candle size to be considered as doji
wickLimit : Maximum wick size of one wick compared to the other wick
colorFilter : Checks if the doji is green
Returns: Boolean - True if the candle is a bullish doji
isBearDoji(maxSize, wickLimit, colorFilter) Check if a candle is a bearish doji candle
Parameters:
maxSize : Maximum candle body size as % of total candle size to be considered as doji
wickLimit : Maximum wick size of one wick compared to the other wick
colorFilter : Checks if the doji is red
Returns: Boolean - True if the candle is a bearish doji
isBullOutBar() Check if a candle is a bullish outside bar
Returns: Boolean - True if the candle is a bullish outside bar
isInsideBar() Check if a candle is an inside bar
Returns: Returns Boolean - True if a candle is an inside bar
Vision Essentials - RSIVision Essentials - RSI is the first indicator from our essentials pack we have planned. It's our twist on the highly popular RSI (Relative Strength Index) Oscillator.
What makes this indicator different?
Based on community feedback we provided users with a visual + adjustable oversold and overbought range to avoid having to redraw boxes during session. Adjusting the settings will update the box positioning on the chart to match.
We utilize custom inputs to allow users to select HA based open, high, low, and close as well as the usual open, high, low, close, hl2, hlc3, and ohlc4 inputs (more coming soon)
The indicator will track the values of the recent high & low points of the RSI based on the distance setting. These values are displayed as text floating at the end of the pane, as well as plotted lines for a visual of the past and current high/low points
The user has complete customization of the color schemes used by: The oversold box, the overbought box, the RSI lower color, the RSI higher color, the recent low color, the recent high color, and the text color. The user can also control the distance that is utilized for finding the recent High & Low points.
How do I use this indicator?
To start using this indicator simply apply it to your chart. We use pre-defined values matching the most common RSI configuration however, you're encouraged to view the settings to fully understand how to adjust the various settings as well as learn how the indicator changes under each individual setting.
RSI Source - This is the input source the RSI calculation is based on. Close is the most common, and default which utilizes the closing price of candles
RSI Length - This setting provides the indicator the length (distance) you want the RSI outlook to be based on. The most common is a 14-day timeframe, but keep in mind that the value of 14 on a 15min chart isn't the same as the value of 14 on a 1day chart. The simple way to view this setting is to consider how many candles back you want the calculation to be based on
RSI Oversold - This setting is considered the "low" level of the RSI. 30 is the most common setting. The lower the RSI, the more momentum that is considered to be in place
RSI Overbought - This setting is considered the "high" level of the RSI. 70 is the most common setting. The higher the RSI, the more momentum that is considered to be in place
High/Low Distance - This setting defines the number of candles back that the indicator will look to determine the recent high/low values
Visual Style - Gradient provides you with a gradient fill between 2 RSI lines. The first is the root RSI based on your RSI settings, and the second is a doubled value which creates the fill gap. Gradient + Highlight is the same as Gradient, but enables coloring on the root RSI edge of the gradient. Highlight Only provides you with a single line based on your RSI settings
Highlight Color - This setting controls the color of your root RSI plot when using one of the highlight based Visual Styles
RSI Lower - This setting controls the color used by the indicator when the RSI value is on the lower end of the spectrum
RSI Higher - This setting controls the color used by the indicator when the RSI value is on the higher end of the spectrum
Recent Low Color - This setting controls the color used by the indicator for plotting the recent low line
Recent High Color - This setting controls the color used by the indicator for plotting the recent high line
Text Color - This setting controls the text color used for the recent high low values at the end of the pane
coates moving averages (cma)This indicator uses three moving averages:
2 period low simple ma
2 period high simple ma
9 period least squares ma
The trend is determined by the angle of the moving averages, current close relative the the 9 least squares ma (lsm) and the current close relative to the prior two periods high and low.
When there are consecutive closes inside the prior two candles high and low then a range is signaled:
In ranges the buy zone is between the lowest low and the lowest close of the current range. The sell zone is between the highest high and the highest close. The zones are adjusted as long as the new close is within the prior two candles range:
When price closes above the 2 high ma and the 9 lsm then a bull trend is signaled if all moving averages are angled upward (as seen at #4 in the chart above and #1 the chart below ). If the 9 lsm and / or the 2 low ma continue to angle downward, following a close above the 2 high ma and 9 lsm, then a prolonged range or reversal is expected (#2 in the chart below):
During a bull trend the buy zone is between the 2 low ma and the 9 lsm. The profit target is the 2 high ma:
During dip buying opportunities price should resist closing below the 9 lsm. If there is one close below the 9 lsm then it is a canary in the coalmine that tells us to proceed with caution. This will often signal a range, based on the conditions outlined above. To avoid a prolonged range, or reversal, price needs to immediately react in the direction of the prevailing trend:
If the moving averages are angled down and the most recent close is below the 2 low ma and 9 lsm then trend is fully bearish:
During a bear trend the short zone is between the 2 high ma and 9 lsm. The profit target is the 2 low ma:
When the 2 high ma angles down and the 2 low ma angles up while price closes inside both mas then it indicates a cma squeeze:
Volatility is expected in the direction of the breakout following the squeeze. In this situation traps / shakeouts are common. If there is a wick outside the cma, with a close inside, then it indicates a trap / shakeout. If there is a close outside the 2 high / low ma then it signals a breakout.
A trend is considered balanced when the 9 lsm is roughly equidistant from the 2 low and 2 high mas. If the 9 lsm crosses the 2 high or 2 low ma then it signals exhaustion / imbalance.
For a stop loss I use the prior three periods low, for bull trends, and the prior three periods high for bear trends. I would expect other reliable stops, such as the parabolic sar or bill williams fractal, to be effective as well. The default moving averages should be very effective on all timeframes and assets classes, however this indicator was developed for bitcoin with a focus on higher timeframes such as the 4h, daily and weekly.
As with any other technical indicator there will be bad signals. Proceed with caution and never risk more than you are willing to lose.
MAPS - HiLo DivergenceThe High/Low indicator utilizes the measuring of local highs and lows as well as local peaks and troughs to identify possible divergence in the price action.
Purple oscillator = Higher Timeframe's price measurement
Purple high triangle = A local high on the higher timeframe has been made
Purple low triangle = A local low on the higher timeframe has been made
Red high triangle on the purple oscillator = A local high on the higher timeframe has been made and is deemed a bearish divergent high
Green low triangle on the purple oscillator = A local low on the higher timeframe has been made and is deemed a bullish divergent low
Orange oscillator = Current Timeframe's price measurement
Orange high triangle = A local high on the current timeframe has been made
Orange low triangle = A local low on the current timeframe has been made
Red high triangle on the orange oscillator = A local high on the current timeframe has been made and is deemed a bearish divergent high
Green low triangle on the orange oscillator = A local low on the current timeframe has been made and is deemed a bullish divergent low
20 Pips & Dip™ Indicator20 Pips & Dipp script based on a few different indicators which together provides powerful help for all level of traders, especially beginners. Also, script have toggles to switch on/off: Renko Reversal, EMA, HHLL, Support/Resistance, Daily Open modules.
1st Module – Renko Reversal Alerts Indicator. The Indicator point out a spot where the revers are happens. Any changes in Price that do not reach a minimum amount are usually filtered. This helps to keep attention on larger, significant moves, and helps not to avoid the minute fluctuations in the market.
How it’s works?
- ENTER a trade JUST AFTER 1 Renko brick is printed. BUY triangle (green buy text with green triangle) is generated if a bearish Renko Brick is followed by a bullish brick. In other words, a buy signal happens when a white block is drawn after a black one. The buy happens then at the closing price that may be higher than the top of the last brick. It can go two bricks up minus a tick or pip.
- EXIT that trade, and open a new reverse position, just after 1 Renko brick is printed in the opposite direction. SELL triangle (red sell text with red triangle) is generated if a bullish brick is followed by a bearish brick. In other words, a sell signal happens when a black block is drawn, after a white block. The same situation as with a buy signal happens on sell signals. There is an uncertainty on the close price that may go as far as one tick above the next potential bearish block.
How to create custom ALERTS? Right click on a sell or buy triangle > Add Alert > 20 Pips & Dipp > Choose between Long or Short opportunity. In options field choose ONCE PER BAR. All other options you can choose according to your personal needs. If you want alert for another option (i.e. Short opportunity) just add one more.
Just to know! To understand how those module work better to switch to Renko chart. But Renko Chart with Renko brick size & Timeframe less than 1 day available only for PRO+ accounts and better. Also, we need to say that TradingView platform do not provide TICK data as we know. So, it may confuse you. Be careful!
2nd Module – Moving Average Exponential. The exponential moving average (EMA) is a weighted moving average (WMA) that gives more weighting, or importance, to recent price data than the simple moving average (SMA) does. The EMA responds more quickly to recent price changes than the SMA. The formula for calculating the EMA just involves using a multiplier and starting with the SMA. Like all moving averages, this technical indicator is used to produce buy and sell signals based on crossovers and divergences from the historical average. By default, our EMA have 50 period. The 50 moving average is the standard swing-trading moving average and very popular. Most traders use it to ride trends because it’s the ideal compromise between too short and too long term. Some people call it medium-term.
How to use it? EMAs are commonly used in conjunction with other indicators to confirm significant market moves and to gauge their validity. For traders who trade intraday and fast-moving markets, the EMA is more applicable. Quite often, traders use EMAs to determine a trading bias. For example, if an EMA on a daily chart shows a strong upward trend, an intraday trader’s strategy may be to trade only from the long side on an intraday chart.
Limitations of EMA! An EMA relies wholly on historical data. Many people believe that markets are efficient - that is, that current market prices already reflect all available information. If markets are indeed efficient, using historical data should tell us nothing about the future direction of asset prices.
3rd Module - Pivot Points (High/Low). Also known as Bar Count Reversals, are used to anticipate potential price reversals. Pivot Point Highs are determined by the number of bars with lower highs on either side of a Pivot Point High. Pivot Point Lows are determined by the number of bars with higher lows on either side of a Pivot Point Low. Default period is 10.
How this indicator works? The longer the trend (the higher the period selected) before and after the Pivot Point, the more significant the Pivot Point. Pivot Points can be used to help determine where to draw trendlines in order to visualize price patterns.
Calculation! Pivot Point Highs are determined by the number of bars with lower highs on either side of a Pivot Point High. Pivot Point Lows are determined by the number of bars with higher lows on either side of a Pivot Point Low.
4th Module - Higher High Lower Low indicator. Higher high and higher lows and Lower lows and lower highs are trends in a chart. Stocks in general never go up or down in linear fashion, every rise is followed by correction and then again it may either go up or down, same is true for downtrend every fall is followed by a correction in the upward direction and then new downtrend or uptrend is followed. After every rise, the stock took breather corrected to some extent and then new uptrend began, when you see the correction every low is higher than the previous lows and every next peak is higher than it’s previous peak. This is higher highs and higher lows trend.
How it’s work? This script finds pivot highs and pivot lows then calculates Higher Highs, Higher Lows & Lower Lows, Lower Highs. And it calculates support/resistance by using HH-HL-LL-LH points. Generally, HH and HL shows up-trend, LL and LH shows down-trend. If price breaks resistance levels it means the trend is up or if price breaks support level it means the trend is down, so the script can change bar colour blue or black by default. if there is up-trend then bar colour is blue, or if down-trend then bar colour is black. Support and resistance levels change dynamically.
Trick! If you use smaller numbers for Left Hand/Right Hand sides then it will be more sensitive!
5th Module - Daily Open Price. The opening price is the price at which a security first trades upon the opening of an exchange on a trading day; for example, the New York Stock Exchange (NYSE) opens at precisely 9:30 a.m. Eastern time. The price of the first trade for any listed stock is its daily opening price. The opening price is an important marker for that day's trading activity, particularly for those interested in measuring short-term results such as day traders.
Important! If daily open price was higher than current price, crosses will be red. And if daily open price lower than current price crosses will be green. Colours change dynamically.
You need to know it! An opening price is not identical to the previous day's closing price. There are several day-trading strategies based on the opening price of a market or security. Research “Gap Fade and Fill” or “Fade”.
Author – Christian Kopachelli . Huge thanks and credits to peoples which ideas, formulas, calculations, code snippets and code parts were used: Robert Nance, CryptoJoncis , FritzHaber , vacalo69 , Molle de Jong, Baris Yakut, LonesomeTheBlue , ChrisMoody , Robert N. ~~~ THANK you all! You are awesome!
DISCLAIMER! RISK WARNING!
PAST PERFORMANCE IS NOT NECESSARILY INDICATIVE OF FUTURE RESULTS. TRADERS SHOULD NOT BASE THEIR DECISION ON INVESTING IN ANY TRADING PROGRAM SOLELY ON THE PAST PERFORMANCE PRESENTED, ADDITIONALLY, IN MAKING AN INVESTMENT DECISION, TRADERS MUST ALSO RELY ON THEIR OWN EXAMINATION OF THE PERSON // OR ENTITY MAKING THE TRADING DECISIONS.
MARAL Execution WorkflowOverview
MARAL Execution Workflow is a discretionary execution decision-support indicator designed to organize market context into a consistent workflow. It is not an automated trading system, does not place orders, and does not predict outcomes.
Meaning of MARAL: Market Alignment + Risk Awareness + Logic-based execution gating — a structured workflow framework designed to improve clarity and consistency in discretionary execution.
This tool supports discretionary decision-making across three stages: Context → Qualification → Management.
It extends analysis beyond entry by supporting post-entry decisions such as: Should I stay? Should I reduce risk? Should I exit? Or should I wait? These are decision-support questions, not predictions.
Key Features
9-Layer Framework + 3 Boards + EDC
The script uses a 9-layer framework coordinated by a centralized decision-state layer (EDC). Each layer has a defined role:
1. Directional Context (Trend/Bias Layer) — establishes a directional preference using configurable bias filters.
2. Higher-Timeframe Context (HTF Layer) — anchors execution to broader context when enabled.
3. Structure Mapping (Swing/Structure Layer) — identifies structural behavior (highs/lows) to frame decision areas.
4. Location / Proximity Awareness (Obstacle Layer) — evaluates proximity to likely reaction areas for risk awareness.
5. Momentum Quality (Momentum Layer) — distinguishes healthier follow-through vs weakening/choppy conditions.
6. Volatility / Stability Regime (VOL/REGIMI) evaluates volatility using ATR% thresholds and regime support using ADX.
7. Pre-Entry Qualification (Checklist Layer) — confirms whether minimum execution conditions are satisfied before entry.
8. Post-Entry Management Context (Management Layer) — monitors changing conditions after a setup for discretionary management.
9. Liquidity Context (Liquidity Layer) — integrates liquidity-based location context using PDH/PDL proximity, sweep/reclaim behavior, and lookback extreme breaks. When enabled, the script may also plot liquidity reference points for visual mapping.
Liquidity Regime States (Panel Output)
The Liquidity Layer displays a 3-state liquidity regime used for execution risk awareness:
• HIGH — a liquidity event is detected (e.g., sweep/reclaim or lookback extreme break).
• NEUTRAL — no event, but liquidity is nearby (proximity to PDH/PDL within a defined threshold).
• LOW — no event and no nearby liquidity pressure detected.
These are context/risk states used for discretionary gating — not buy/sell signals and not outcome predictions.
Boards
• Context Board — summarizes direction, HTF context, structure, momentum, volatility (ATR%), trend regime (ADX), scores, and liquidity context.
• Qualification Gate — rule-based checklist view to confirm minimum execution conditions before entry.
• Management Desk — post-setup view to monitor risk changes, obstacle proximity, deterioration cues, and management states.
EDC — Execution Decision Core
EDC consolidates outputs from the framework into unified workflow states. It applies rule-based gating to reduce conflict when conditions are mixed.
EDC Unified Output States (Decision-Support Only):
• SETUP: WAIT / LONG / SHORT
• ENTRY PERMISSION: ENTER / WAIT / SKIP
• LIQUIDITY: HIGH / NEUTRAL / LOW
• TRADE STATUS: VALID / RISKY / WEAK / —
• ACTION STATE: HOLD / TIGHT SL / SCALE OUT / EXIT / —
— may appear when a state is not applicable (e.g., no active management window is being tracked).
Panels & Labels (Exact On-Chart Meanings)
1) Context Board (Market Environment Snapshot)
• DIRECTION → Bullish / Bearish / Neutral
• H1 CONTEXT / H4 CONTEXT / DAILY CONTEXT → HTF bias states (when enabled). If HTF is disabled, shows OFF.
• STRUCTURE → Bull Struct / Bear Struct / Neutral Struct
• MOMENTUM → BULL / BEAR / NEUTRAL
• VOLATILITY (ATR%) → ATR as a percentage of price (volatility context)
• TREND STRENGTH → ADX context value
• LONG SCORE / SHORT SCORE → internal workflow alignment scores (0–100) with grade: A++ / A+ / A / B / No-Trade
• ALIGNMENT SCORE → combined alignment score used for gating
• LIQUIDITY CONTEXT → HIGH / NEUTRAL / LOW
Important: Scores are internal workflow scoring for filtering/alignment. They are not performance statistics and do not imply guaranteed probability or outcomes.
2) Qualification Gate (Pre-Entry Checklist)
Gate Legend: OK = passes filter, WARN = mixed/caution, BAD = fails filter (execution gated).
• SETUP → WAIT / LONG / SHORT
• HTF CONTEXT → OK / WARN / BAD / —
• STRUCTURE → OK / WARN / BAD / —
• MOMENTUM → OK / WARN / BAD / —
• VOL/REGIME → OK / WARN / BAD / — (Volatility + regime filter; not volume)
o OK = ATR% within thresholds AND ADX meets regime requirement
o WARN = ATR% within thresholds but regime is mixed (ADX below threshold)
o BAD = ATR% outside thresholds
• LIQUIDITY → HIGH / NEUTRAL / LOW
• ALIGNMENT → shows score vs required minimum threshold
• ENTRY PERMISSION → ENTER / WAIT / SKIP
Purpose: reduce forced entries by requiring minimum execution quality.
3) Management Desk (Post-Setup Decision Support)
The Management Desk operates inside an Active Window measured in bars after the last setup (configurable by input). When the management window is not active, some fields may show —.
• TRADE STATUS → VALID / RISKY / WEAK / —
— appears when no active trade state is being tracked (not applicable).
• MARKET PHASE → RANGE / IMPULSE / PULLBACK / CONTINUATION
Environment classification used for management context (not prediction).
• OBSTACLE AHEAD → YES / NO
Proximity risk context (e.g., near PDH/PDL or near swing levels under the script’s logic).
• EXIT PRESSURE → LOW / RISING / HIGH
Management pressure context based on deterioration cues (not a signal).
• MOMENTUM HEALTH → STRONG / WEAKENING / WEAK / NEUTRAL
Follow-through quality context used for management.
• SCORE TREND → IMPROVING / DETERIORATING / STABLE
Direction of the internal workflow score trend (not P&L, not performance).
• RISK STATE → OVEREXTENDED / NORMAL
Overextension context based on distance from EMA vs ATR.
• TRADE AGE → FRESH / MID / LATE / —
Workflow age based on bars since last setup. — when not applicable.
• SL MODE → BE OK / TIGHT / NORMAL / —
Stop-management context used for discretionary risk control. — when not applicable.
• ACTION STATE → HOLD / TIGHT SL / SCALE OUT / EXIT / —
o HOLD = maintain the current plan under present conditions
o TIGHT SL = discretionary prompt to reduce risk by tightening protection
o SCALE OUT = discretionary prompt to partially reduce exposure (partial exit / trim size), typically when obstacle proximity risk is detected
o EXIT = discretionary prompt that conditions deteriorated and exit may be considered
o — = not applicable
• ACTIVE WINDOW → ON / OFF
Shows whether the post-setup management window is active (bars after the last setup, per the “Active Window” input). When OFF, management/trade states may show —.
Optional Modules (Toggleable)
To keep the chart clean and workflow-focused, optional modules can be enabled/disabled:
A) PDH/PDL Reference (Optional)
• Plots Previous Day High / Previous Day Low as structured reference points (risk awareness only).
B) ATR-Based Planning Guides (Optional)
• Optional visual guides for SL / TP1 / TP2 / TP3 based on ATR.
• Visual planning references only. Does not place orders and does not guarantee outcomes.
C) Visual Color Layer (Optional)
• Optional state-based candle coloring for readability only.
D) State Markers (Optional)
• Optional state markers (e.g., LONG/SHORT confirmations). These are state confirmations only, not trade recommendations.
Display & Layout Options
• Display Mode: Mobile / Medium / Desktop
• Mobile Minimal View: optional minimal mode (EDC-only)
• Panel Positioning: 9 anchor positions
(Top Left / Top Center / Top Right / Middle Left / Middle Center / Middle Right / Bottom Left / Bottom Center / Bottom Right)
Why This Is Not a “Mashup”
This publication is not intended to bundle multiple classic indicators as independent buy/sell tools. While it uses familiar building blocks (trend/bias filtering, volatility/regime context, structure references, liquidity context), each component has a defined role inside a single execution workflow:
• Context Board → Qualification Gate → Management Desk organizes information into a consistent discretionary process.
• EDC consolidates multi-layer conditions into unified states using rule-based gating to reduce conflict and prioritize risk awareness.
This is a decision-support framework designed to improve clarity and consistency in discretionary execution. It does not place orders and does not provide guaranteed outcomes.
How to Use (Recommended Workflow)
1. Set context: Use the Context Board to determine directional preference, volatility/regime stability, and location context.
2. Qualify execution: Use the Qualification Gate as the filter. If alignment is not sufficient, avoid forcing entries.
3. Execute with location awareness: Avoid late entries into nearby obstacles. Treat proximity as increased risk.
4. Manage post-setup: Use the Management Desk to monitor risk changes. If states deteriorate, follow your plan (reduce risk, protect, or exit).
5. Stay consistent: Works best with position sizing rules and disciplined confirmation.
Screenshots / Visual Reference (What each panel shows)
Screenshot 1 — Full Workflow View (Desktop)
Shows the complete workflow layout on one chart: Context Board, Qualification Gate, Management Desk, and the EDC (Execution Decision Core) summary together.
Screenshot 2 — Context Board
Shows directional context, HTF context (if enabled), structure mapping, momentum quality, volatility/stability regime (ATR + ADX), and liquidity context (HIGH/NEUTRAL/LOW). This board is used to understand “market alignment” before considering execution.
Screenshot 3 — Qualification Gate (Pre-Entry)
Shows the rule-based checklist view used for discretionary pre-entry qualification. It summarizes SETUP (WAIT/LONG/SHORT), key confluence checks, liquidity context, and ENTRY PERMISSION (ENTER/WAIT/SKIP). This is a gating view—meant to prevent forced entries when alignment is insufficient.
Screenshot 4 — Management Desk (Post-Entry)
Shows post-entry condition monitoring within the active window after the last setup. It highlights trade status shifts (VALID/RISKY/WEAK), obstacle proximity, exit pressure, momentum health, score trend, risk state, SL mode, and action guidance context.
Screenshot 5 — EDC Panel (Execution Decision Core) — Centralized State
Shows the unified decision-support outputs consolidated from the workflow layers and boards into one compact view:
• SETUP: WAIT / LONG / SHORT
• ENTRY PERMISSION: ENTER / WAIT / SKIP
• LIQUIDITY: HIGH / NEUTRAL / LOW
• TRADE STATUS: VALID / RISKY / WEAK
• ACTION STATE: HOLD / TIGHT SL / SCALE OUT / EXIT
These are rule-based guidance states for discretionary execution and risk awareness — not automated actions.
Screenshot 6 — Example –Execution context
The screenshot shows MARAL Execution Workflow applied to XAUUSD on the 1-hour timeframe. All three boards and the EDC panel are visible:
• Context Board (top-right) – Confirms a fully aligned bullish environment: direction and all HTF contexts are Bullish, structure is “Bull Struct”, momentum is “BULL”, volatility (ATR%) is within normal bounds, and the long-side alignment score is high while the short-side score is in “No-Trade” territory. Liquidity Context is “LOW”, indicating limited immediate liquidity pressure.
• Qualification Gate (top-center) – For the same bar, the checklist produces a LONG setup with HTF CONTEXT, STRUCTURE, MOMENTUM and VOL/REGIME all marked OK. Liquidity is LOW, and ALIGNMENT shows “93 / 65”, meaning the current long-side score (93) is above the user-defined minimum threshold (65). ENTRY PERMISSION = ENTER, signaling that, within this framework, execution conditions are sufficiently aligned to allow a discretionary long entry according to the trader’s own plan.
• Management Desk (left) – Once a trade is active, the post-entry view monitors evolving risk. In this example the trade status is VALID and MARKET PHASE is CONTINUATION, while RISK STATE highlights OVEREXTENDED and TRADE AGE is FRESH. MOMENTUM HEALTH = STRONG, SCORE TREND = STABLE, and ACTION STATE = HOLD. This illustrates how the panel can flag extension or emerging pressure without forcing a decision.
• EDC | Execution Decision Core (bottom-right) – The EDC panel consolidates the key states into one unified view: SETUP = LONG, ENTRY PERMISSION = ENTER, LIQUIDITY = LOW, TRADE STATUS = VALID, ACTION STATE = HOLD. These are rule-based guidelines summarizing the interaction between Context, Qualification, Management and liquidity conditions. They are decision-support outputs only; they do not place orders and do not imply any guaranteed outcome.
Inputs & Customization
Inputs are provided to adapt the workflow to different instruments and timeframes, including:
• bias/trend parameters and smoothing, optional HTF context,
• structure sensitivity and lookback,
• momentum thresholds,
• volatility thresholds (ATR% limits) and regime filter (ADX),
• liquidity sensitivity (lookback / proximity thresholds),
• visuals (show/hide boards, display mode, mobile minimal view, text size, positioning).
Markets & Timeframes
Designed for multiple markets and instruments available on Trading View, including:
• Indices (index charts / index futures where available — not an options-chain or options-pricing tool)
• Crypto
• Forex
• Stocks / ETFs
• Commodities
Timeframe-agnostic: can be applied from lower to higher timeframes based on your trading style. Results vary by instrument, timeframe, and volatility/regime.
Limitations (Important)
• Discretionary analysis tool only; does not place trades.
• Optional markers/labels (if enabled) are state confirmations only, not recommendations.
• HTF values can update as HTF candles develop.
• Structure/obstacle references are informational decision areas and may be exceeded.
• No indicator removes risk; risk management remains essential.
• Provided “as-is.” Outputs may differ across symbols, sessions, spreads, or data feeds.
Risk & Disclaimer
Trading involves risk. Past behavior does not indicate future performance. This script is provided for educational and analytical purposes only. You are responsible for all trading decisions, including entries, exits, position sizing, and risk management. The script does not place trades and does not provide investment advice.
Medium-term TrendThis Medium-term Trend indicator is designed to identify short, mid, and long-term price pivots, track trend directions, and visualize key support and resistance zones. It excels at analyzing mid-term trends, the most optimal timeframe for traders, and delivers greater reliability when applied to larger chart periods. The indicator helps you dynamically observe the battle between bullish and bearish forces at mid-term highs and lows, enabling you to align your trades with the prevailing trend.
How to Use This Script
1. Core Parameter Adjustment
The only critical adjustable parameter for trend validation is Retrace Percentage (%).It defaults to 0.01, with a range of 0 to 20.0 (adjustable in 0.01 increments). This parameter defines the minimum retracement percentage required to confirm a trend change from bullish to bearish or vice versa. A higher value means a more conservative trend change confirmation (fewer false signals), while a lower value captures more frequent trend shifts (may include more noise).
2. Visual Display Controls (Toggle On/Off)
You can enable or disable the following visual elements via the indicator settings panel to match your chart clarity needs.
Pivot Point Displays
Show Short Points: Disable by default. When enabled, small green circles mark short-term lows and small red circles mark short-term highs, with tooltips showing the exact pivot price.
Show Mid Points: Enables by default. When enabled, tiny yellow circles mark mid-term lows and mid-term highs (the core of the indicator), with tooltips showing the exact pivot price. These points are key for identifying mid-term trend direction.
Show Long Points: Disables by default. When enabled, small blue circles mark long-term lows and long-term highs, with tooltips showing the exact pivot price.
Trend Channel Displays
Show Short Channel: Disables by default. When enabled, green lines connect consecutive short-term lows and red lines connect consecutive short-term highs, forming a short-term price channel.
Show Mid Channel: Disables by default. When enabled, yellow lines connect consecutive mid-term lows and mid-term highs, forming a mid-term price channel that clearly visualizes the mid-term trend trajectory.
Show Long Channel: Disables by default. When enabled, blue lines connect consecutive long-term lows and long-term highs, forming a long-term price channel for broader trend analysis.
Mid-term Pivot Rectangles (Core Visual Element)
Show Mid Rectangles: Enables by default. When enabled, transparent rectangles mark mid-term pivot zones (support and resistance) with dynamic break tracking.These rectangles extend to the right until the trend completes, helping you monitor price interactions with key mid-term levels.
3. Trend Identification & Trading Guidance
Key Trend Rules (Mid-term Focus)
Uptrend Confirmation: When mid-term lows show a sequential upward pattern (each subsequent mid-term low is higher than the previous one), the mid-term trend is bullish (uptrend).Downtrend Confirmation: When mid-term highs show a sequential downward pattern (each subsequent mid-term high is lower than the previous one), the mid-term trend is bearish (downtrend).Range Bound Condition: When mid-term highs and lows move sideways (no clear upward/downward sequence), the market is in a mid-term range.
4.How to Align Trades with the Trend
Observe Mid-term Pivot Interactions: Pay close attention to price reactions at the mid-term rectangles (purple for support, orange for resistance). These zones represent key battle areas between bulls and bears.
Uptrend Trading: In a confirmed mid-term uptrend, prioritize long trades when price touches or bounces from mid-term support rectangles (purple), with stop losses placed below the support rectangle’s bottom edge.
Downtrend Trading: In a confirmed mid-term downtrend, prioritize short trades when price touches or rejects from mid-term resistance rectangles (orange), with stop losses placed above the resistance rectangle’s top edge.
Range Trading: In a mid-term range, trade between consecutive mid-term support (purple) and resistance (orange) rectangles—buy near support and sell near resistance, with tight stop losses beyond the rectangle edges.
Trend Breakout Confirmation: When price closes beyond the top (uptrend breakout) or bottom (downtrend breakout) of a mid-term rectangle, and the rectangle stops extending, this signals a potential mid-term trend shift. Wait for a retest of the broken rectangle (if applicable) to enter trades in the direction of the breakout.
5. Best Practices
Optimal Timeframes: While the indicator works on all timeframes, it performs best on larger periods (4-hour, daily, weekly) where mid-term trends are more defined and less prone to noise.Mid-term Focus: For consistent trading results, prioritize mid-term signals (yellow pivot points, mid rectangles) over short-term signals, as mid-term trends offer higher probability trades with favorable risk-reward ratios.Avoid Overcluttering: Keep short-term and long-term displays disabled by default unless you need multi-timeframe confluence. Enabling too many visual elements can obscure key mid-term trend signals.Parameter Fine-Tuning: Adjust the Retrace Percentage (%) based on your asset’s volatility—use higher values (e.g., 0.5 to 2.0) for volatile assets (cryptocurrencies) and lower values (e.g., 0.01 to 0.2) for less volatile assets (blue-chip stocks).Dynamic Analysis: Regularly monitor the evolution of mid-term pivot rectangles and pivot point sequences—trends are not static, and early detection of shifting mid-term highs/lows can help you exit losing trades and capture new trend opportunities.
Disclaimer: This indicator is for educational and analytical purposes only. It does not constitute financial advice. Always conduct your own research and risk assessment before executing trades. For support or customization requests, please send a private message to the author.
Killzones & DoL's by @mohtradesThe KillZones & DoLs indicator is a comprehensive tool designed for ICT and institutional traders. It provides a clean, customizable way to visualize key time-based levels, killzone sessions, and daily/weekly/monthly statistics directly on your chart.
Key Features
1. Killzones & Sessions
Visualize the three major trading sessions with customizable boxes and time ranges:
Asia Range: Default 20:00 - 00:00 (NY Time)
London Killzone: Default 02:00 - 05:00 (NY Time)
New York Killzone: Default 09:30 - 16:00 (NY Time)
Killzone Tools:
Boxes: Draw highlighted boxes for each session.
Pivots: Automatically mark the High and Low of each session.
Midpoints: Optionally show the 50% equilibrium level of the session range.
Extensions: Extend pivot lines until they are mitigated (price touches them) or keep them for a set duration.
Alerts: Get notified when a session High or Low is broken.
2. Highs & Lows (HTF Levels)
Track significant liquidity levels from higher timeframes without switching charts:
Previous Day High/Low (PDH/PDL)
Previous Week High/Low (PWH/PWL)
Previous Month High/Low (PMH/PML)
Current High/Low of Day (HOD/LOD): Tracks the developing high and low of the current day.
Current High/Low of Week (HOW/LOW): Tracks the developing high and low of the current week.
3. Opening Price Lines
Mark key opening prices to use as support/resistance or bias confirmation:
True Day Open (00:00 NY)
Week Open
Month Open
Custom Open Lines: Configure up to 8 custom time-based open price lines (e.g., 06:00, 10:00, 14:00).
4. Separators & Statistics
Period Separators: Vertical lines marking the start of new Days, Weeks, or Months.
Range Table: Display the range (in pips/points) of recent sessions and their average to gauge volatility.
Customization
Timezone: Fully adjustable to your preferred timezone (default America/New_York).
Styling: Customize colors, line styles, widths, and label sizes for all elements.
Drawing Limits: Optimize chart cleanliness by limiting historical drawings to the last N days.
How to Use
Add the indicator to your chart.
Open Settings to enable/disable specific Killzones (Asia, London, NY).
Enable "Show PDH/PDL" or "Show HOW/LOW" to track liquidity.
Set your convenient timezone (typically NY for ICT concepts).
Use alerts to catch liquidity runs on session pivots.
SMT Divergence [Kodexius]SMT Divergence is a correlation-based divergence detector built around the Smart Money Technique concept: when two normally correlated instruments should be making similar swing progress, but one prints a new extreme while the other fails to confirm it. This “disagreement” can be a valuable contextual signal around liquidity runs, distribution phases, and potential reversal or continuation points.
The script compares the chart symbol (primary) with a user-selected comparison symbol (for example BTC vs ETH, ES vs NQ, EUR/USD vs GBP/USD) and automatically scans both instruments for confirmed swing highs and swing lows using pivot logic. Once swings are established, it checks for classic SMT conditions:
Primary makes a new swing extreme while the comparison symbol forms a non-confirming swing .
To support a wider range of markets, the indicator includes an Inverse Correlation option for pairs that typically move opposite to each other (for example DXY vs EUR/USD). With this enabled, the divergence rules are logically flipped so that the script still detects “non-confirmation” in a way that is consistent with the pair’s relationship.
The indicator is designed to be readable and actionable. It can draw divergence labels directly on the main chart, connect the relevant swing points with lines, show a compact information table with the last signal and settings, and optionally render the comparison symbol as a mini candle chart in the indicator pane for quick visual validation.
🔹 Features
🔸 Two-Symbol SMT Analysis (Primary vs Compare)
Select any comparison symbol to evaluate correlation structure and divergence. The script fetches the comparison OHLC data using the current chart timeframe to keep both series aligned for analysis.
🔸 Inverse Correlation Mode
For inversely correlated pairs, enable “Inverse Correlation” so the script interprets confirmation appropriately (for example, a higher low on the comparison instrument might be expected to correspond to a lower low on the primary, depending on the relationship). This helps avoid false conclusions when the pair naturally moves opposite.
🔸 Pivot-Based Swing with Adjustable Sensitivity
Swings are detected using confirmed pivots (left bars and right bars). This provides cleaner structural swing points compared with raw candle-to-candle comparisons, and it lets you control sensitivity for different market conditions and timeframes. The script also limits stored swing history to keep performance stable.
🔸 Flexible Detection Mode: Time Matched or Independent Swings
You can choose how swings are paired across instruments:
Time Matched searches for a comparison swing that occurred at the same pivot time as the primary swing.
Independent Swings compares each symbol’s own last two swings without requiring an exact time match.
🔸 Range Control and Noise Filtering
To reduce weak or irrelevant signals:
“Max Bars Between Swings” ensures the two swings being compared are close enough in structure to be meaningful.
“Min Price Diff (%)” can require a minimum percentage change between the primary’s last two swing prices to confirm the move is significant.
🔸 Clear Visual Output with Tooltips
When a divergence is detected, the script can print a label (“SMT”) with bullish or bearish styling and a tooltip that includes the symbol pair and the primary swing price for quick context.
🔸 Divergence Lines for Context
Optional lines connect the relevant swing points, making it easier to see the exact structure that triggered the signal. One line can be drawn on the main chart and another in the indicator pane for the comparison series.
🔸 Info Table (At a Glance)
A compact table can display the active symbols, correlation mode, total divergences stored, and the most recent signal type.
🔸 Alerts Included
Built-in alert conditions are provided for bullish SMT, bearish SMT, and any SMT event so you can automate notifications without editing the code.
🔸 Optional Comparison Candle Panel
If enabled, the indicator can plot the comparison symbol as candles in the indicator pane. This is useful for confirming whether the divergence is happening around major levels, consolidations, or impulsive legs on the secondary instrument.
🔹 Calculations
This section summarizes the core logic used by the script.
1. Data Synchronization (Comparison Symbol)
The comparison instrument is requested on the chart’s current timeframe so swing calculations are performed consistently:
=
request.security(compareSymbolInput, timeframe.period, )
This ensures pivots and swing times are derived from the same bar cadence as the primary chart.
2. Swing Detection via Confirmed Pivots
Swings are detected using pivot logic with user-defined left and right bars:
primaryPivotHigh = ta.pivothigh(high, pivotLeftBars, pivotRightBars)
primaryPivotLow = ta.pivotlow(low, pivotLeftBars, pivotRightBars)
Because pivots are confirmed only after the “right bars” have closed, the script stores each swing using an offset so the swing’s bar index and time reflect where the pivot actually occurred, not where it was confirmed.
3. Swing Storage and Retrieval
Both symbols maintain arrays of SwingPoint objects. Each new swing is pushed into the array, and older swings are dropped once the array exceeds the configured maximum. This makes the divergence engine predictable and prevents uncontrolled memory growth.
The script then retrieves the last and previous swing highs and lows (per symbol) to evaluate structure.
4. Matching Logic (Time Matched vs Independent)
When “Time Matched” is selected, the script searches the comparison swing array for a pivot that occurred at the exact same timestamp as the primary swing. When “Independent Swings” is selected, it simply uses the comparison symbol’s last two swings of the same type.
5. Bullish SMT Condition (LL vs HL)
A bullish SMT event is defined as:
Primary forms a lower low (last low < previous low)
Comparison forms a higher low (last low > previous low)
If inverse correlation is enabled, the comparison condition flips to maintain logical confirmation rules
The two primary swings must be within the configured bar distance window
Optional minimum percentage difference must be satisfied
A simple anti duplication rule prevents repeated triggers on the same structure
These checks are implemented directly in the bullish detection block.
6. Bearish SMT Condition (HH vs LH)
A bearish SMT event is defined as:
Primary forms a higher high (last high > previous high)
Comparison forms a lower high (last high < previous high)
Inverse correlation flips the comparison rule
Range checks, minimum difference filtering, and duplicate protection apply similarly
These checks are implemented in the bearish detection block.
7. Percentage Difference Filter
The optional “Min Price Diff (%)” filter measures the relative distance between the last two primary swing prices. This prevents very small structural changes from being treated as valid SMT signals.
priceDiffPerc = math.abs(lastSwing.price - prevSwing.price) / prevSwing.price * 100.0
The divergence condition is only allowed to trigger if this value exceeds the user defined threshold.
priceOk = priceDiffPerc >= minPriceDiff
This filter is especially useful on higher timeframes or during low volatility conditions, where micro structure noise can otherwise produce misleading signals.
8. Visualization and Output
When a divergence is confirmed, the script:
Stores the event in a divergence array (limited by “Max Divergences to Display”)
Draws a directional SMT label with a tooltip (optional)
Draws connecting lines using time based coordinates for clean alignment (optional)
It also updates an information table on the last bar only, and exposes alertconditions for automation workflows.
Intermarket SSMT Table [Pogiest]General
Intermarket Sequential Smart Money Technique (IMSSMT) is a Quarterly Theory concept that identifies divergences (extreme highs/lows) when comparing different market triads to another market triad in two consecutive quarters.
SSMT involves identifying divergences in a correlated asset triad that occurs consecutively from the previous quarter to the current quarter to predict new phases of price, a shift in market sentiment, and also potential trend reversals. An SSMT divergence occurs when one or two assets makes a new high or low, but the other asset or assets does not, signaling a potential shift in market direction. A Hidden SSMT Divergence occurs when one or two assets’ closing price closes higher or lower than the other one or two assets’ closing price. However, with potential gaps in price, an opening price can also be the extreme when comparing assets for divergences. Hidden SSMT divergence compares the candle bodies while a Standard SSMT divergence compares the highs and lows. Both types of SSMTs are considered to be cracks in correlation and can be used to identify potential new phases of price whether it be a reversal, retracement, consolidation, and continuation.
Credit of concepts/ideas: ICT & TraderDaye
What Makes This Indicator Unique
The indicator table is designed to be used on any symbol the trader is viewing. For example, the indicator is shown on an NQ chart while selecting three symbols in the Forex triad in settings. The indicator will request the separate data from the symbols selected and display the data within the table. The table does not rely on data on the chart being viewed. Instead of switching charts, the table is used to track other market triads for SSMTs (standard & hidden) while viewing other markets simultaneously.
The indicator has the ability to display Standard SSMTs, Hidden SSMTs, or both simultaneously in real-time, tick by tick in the time period selected in a correlated asset triad within the table. Toggle modes for each type of SSMT will run independently (runs when enabled) and therefore, optimizes performance. The user is able to select three different tickers in settings instead of limiting to pairs. In addition, the indicator has “Invert” toggle options to track both Standard and Hidden SSMTs for assets with negative correlations.
How the Indicator Table Works
The indicator functions to track any divergences from the previous quarter to the current quarter. In addition, the indicator tracks the current status even when there are no divergences (see phase column below).
Timeframe Column:
1. Displays up to two different timeframes to monitor.
Asset Columns:
1. Display up to three different assets to monitor.
2. Cells display “Bull” in green background color or “Bear” in red background color showing the current state of each candle and updates in real-time tick by tick.
Phase Column:
Displays the current status from the previous quarter to the current quarter. The status updates in real-time tick by tick.
1. “F/S” indicates there are no current SSMT divergences between the previous quarter to the current quarter and all assets have not swept the previous quarter, a “failure swing”.
2. “HH” is displayed when all assets have swept the previous quarter’s extreme high. (Higher High)
3. “LL” is displayed when all assets have swept the previous quarter’s extreme low. (Lower Low) See screenshot with drawings below.
4. SSMT indicates there is an SSMT from the previous quarter to the current quarter. Red background is a bearish SSMT (divergence at the highs) or green background is a bullish SSMT (divergence at the lows). If the SSMT becomes invalid (i.e. the last asset sweeps the extreme high/low), then the table will update to display either “HH” or “LL” depending on the extreme it swept. See screenshot with drawings below.
5. “Both” indicates there are SSMT divergences at both the extremes highs and lows. If an SSMT on one side gets deleted, then the cell will automatically update to display the SSMT that is still intact. See screenshot with drawings below.
Invert Toggle Option:
When this setting is turned on, the asset column cells will display the inverted color of the live chart to show assets are in-sync. It will track the inverted swing points for SSMTs, higher highs, lower lows, etc. For example, if EUR and GBP are making lower highs, while DXY (Inverted toggle on), makes a lower low on the actual live chart, it will display “SSMT”.
NOTE:
Scanning function per timeframe to detect SSMTs:
Weekly HTF: Scans 4HR bars
Daily HTF: Scans 1HR bars
6HR/4HR HTF: Scans 15m bars
1HR HTF: Scans 5m bars
5m HTF: Scans 1m bars
The script has fixed lookback periods for bars to ensure the appropriate data is being captured. The higher the timeframe the user selects in settings while viewing on an extremely lower timeframe, the indicator may give inaccurate readings:
Recommended Chart Timeframes:
For best performance and accuracy, view your chart on a timeframe close to or lower than the scan timeframe:
Weekly HTF → View on 1H-4H chart
Daily HTF → View on 1H-4H chart
6HR/4HR HTF → View on 5m-15m chart
90M HTF → View on 3m-15m chart
1H HTF → View on 1m-15m chart
The indicator will attempt to scan further back if needed, but extremely low chart timeframes (e.g., 1m) with high HTF (e.g., Weekly) may still have limitations.
In addition, the indicator bases the SSMT off the previous quarter’s time range to the current quarter’s time range. If there are discrepancies in the time ranges (start to end of higher timeframe period selected), the SSMTs may display differently than what is viewed on the chart. For example, indices open at 18:00 est on a new trading day, so the time ranges matches throughout the day. However, in Forex, EUR and GBP opens at 17:00 est while DXY opens later, so the time ranges may be off (i.e. 6 hour timeframe). For best use, select time periods that matches throughout the day.
Usage
Traders can use both types of SSMT divergences to anticipate potential reversals in points of interest such as higher timeframe swing points, supply/demand zones, higher timeframe imbalances, key levels, etc. This indicator can also be beneficial in identifying cracks in correlation via Hidden SSMT when there are no divergences off the highs and lows. Divergences can come in different forms relating to Intermarket SSMT. For example, if one market triad is all making lower lows while the other market triad is making higher highs, this can be deemed a divergence between the two markets. Another example would be one market triad all makes lower lows while another market triad makes a bullish SSMT. This can potentially signal a bullish move up. SSMT divergences (standard and hidden) can be used as a confirmation tool with other confluences to identify trend direction with respect to points of interest, higher timeframe order-flow, lower timeframe order-flow, etc. In addition, having both a Standard SSMT and Hidden SSMT divergence display could potentially signal a reversal. It is up to the trader to gauge the price action at the time.
Settings
1. Choose up to three different assets to monitor.
Note: If only two are selected, the indicator will only display the two selected and compare the two assets for divergences. If one is selected, a warning sign will be displayed to select at least two assets.
2. Choose up to two different timeframes. Option to deselect timeframes.
3. Enable/disable standard or hidden SSMT.
4. Option to enable alerts. Alerts include the different phases in the table (i.e. SSMT, HH, LL, and Dual SSMT [both standard & hidden) for each timeframe.
5. Toggle option to show/hide the table. Toggle option to show/hide the “Title Row” which is the first row at the top of the table.
6. Adjust the table positioning to be displayed on the chart.
7. Option to change text size in the table cells. This will also increase/decrease the size of the table.
Risk Disclaimer
This indicator is for educational and informational purposes only and does not constitute financial advice. All trading and investment decisions remain solely the responsibility of the user.
Trading involves a high degree of risk, and past performance is not indicative of future results.
Always conduct your own research and consult with a qualified financial professional before making any trading decisions.
By using this indicator, users acknowledge they understand these risks and accept full responsibility for their trading decisions and outcomes.
Market Structure Pivots with BOS & CHoCH [zazenio]What is Market Structure?
Market structure is simply the pattern of highs and lows that price creates as it moves. When you look at any chart, you'll notice price doesn't move in a straight line — it swings up, pulls back, swings up again (in an uptrend), or the opposite in a downtrend.
These swing points — the peaks and valleys — are what traders call pivots . Identifying them correctly is the foundation of understanding where a market has been and where it might go next.
What This Indicator Does
Swing Pivots automatically marks these peaks and valleys on your chart so you don't have to draw them manually. It works on any market — stocks, crypto, forex, futures, indices — and on any timeframe.
Beyond just marking pivots, this indicator also draws BOS (Break of Structure) and CHoCH (Change of Character) lines — two essential concepts that help you understand when a trend is continuing or potentially reversing.
How Pivots Are Detected
This indicator confirms pivots based on price structure, not a fixed bar count.
Here's how it works:
A swing high is confirmed when price breaks below the previous swing low. At that moment, we know the high was real — price tried to go higher, failed, and reversed. The market "proved" that level was a genuine turning point.
A swing low is confirmed when price breaks above the previous swing high. The same logic applies — price tried to go lower, failed, and reversed direction.
This creates a natural alternation: high, low, high, low. Each pivot is validated by the market's actual behavior, not by waiting for an arbitrary number of bars to pass.
Understanding BOS and CHoCH
Once you can identify pivots, the next step is understanding what happens when price breaks through them. This is where BOS and CHoCH come in.
BOS (Break of Structure)
A Break of Structure occurs when price continues in the direction of the current trend by breaking a previous pivot level.
In an uptrend : Price breaks above a previous swing high → This signals strength. Buyers are pushing price to new highs, and the trend is likely to continue.
In a downtrend : Price breaks below a previous swing low → This signals weakness. Sellers are pushing price to new lows, and the trend is likely to continue.
Think of BOS as the market saying "the trend is still intact." Each BOS confirms that the dominant side (buyers or sellers) remains in control.
CHoCH (Change of Character)
A Change of Character occurs when price breaks a pivot level in the opposite direction of the current trend. This is an early warning signal that the trend may be reversing.
In an uptrend : Price breaks below a previous swing low → This is unexpected. In a healthy uptrend, lows should hold. When they don't, it suggests buyers are losing control and sellers may be taking over.
In a downtrend : Price breaks above a previous swing high → This is unexpected. In a healthy downtrend, highs should hold. When they don't, it suggests sellers are losing control and buyers may be stepping in.
Think of CHoCH as the market's behavior "changing character" — it's no longer acting the way it should if the trend were healthy.
Why BOS and CHoCH Matter
These concepts give you a framework for reading what the market is actually doing:
BOS tells you the trend is continuing — stay with it or look for entries in that direction
CHoCH warns you the trend may be ending — time to be cautious, take profits, or look for trades in the new direction
By visualizing these breaks directly on your chart, you don't have to guess. You can see at a glance whether the market is trending smoothly (consecutive BOS) or showing signs of reversal (CHoCH).
Why This Approach Works
Most pivot indicators use a "lookback" method — they wait for a certain number of bars (say, 5 or 10) on each side of a candle before confirming it as a pivot. This creates a fixed delay. By the time the pivot appears on your chart, price has already moved on.
This indicator doesn't wait. It confirms pivots the moment price structure proves them. The result is pivots that align with how traders actually read charts — based on breaks of structure, not arbitrary countdowns.
Settings
Configuration
Swing Width : Controls how sensitive the detection is. Higher numbers show only major swings; lower numbers capture smaller moves within the structure.
Pivot Settings
High/Low Color : Customize the colors of swing high and swing low markers
Style : Choose between Triangle or Circle markers
Size : Adjust the size of pivot markers (Auto, Tiny, Small, Normal)
Structure Lines
Show CHoCH : Toggle Change of Character lines on/off
CHoCH Color : Customize the color of CHoCH lines
CHoCH Label : Show/hide the "CHoCH" text label
Show BOS : Toggle Break of Structure lines on/off
BOS Color : Customize the color of BOS lines
BOS Label : Show/hide the "BOS" text label
Use Cases
See the "skeleton" of price action at a glance
Identify potential support and resistance levels
Understand if the market is trending or ranging
Spot trend continuations with BOS lines
Catch early reversal signals with CHoCH lines
Build a foundation for more advanced trading strategies
━━━━━━━━━━━━━━━━━━━━━━
Version History
v1.1
Added BOS (Break of Structure) lines to visualize trend continuation
Added CHoCH (Change of Character) lines to identify potential trend reversals
Added toggle options for BOS and CHoCH visibility
Added customizable colors for structure lines
Added optional labels for BOS and CHoCH
v1.0
Initial release
Automatic swing high and swing low detection
Structure-based pivot confirmation (not fixed lookback)
Customizable pivot markers (style, size, colors)
Adjustable swing width sensitivity
━━━━━━━━━━━━━━━━━━━━━━
Disclaimer:
This script is provided for educational and informational purposes only. It is not financial advice and does not constitute a recommendation to buy or sell any financial instrument. Always do your own research and trade at your own risk.
Cold Brew Ranges🧭 Core Logic and Calculation
The fundamental logic for each range (OR and CR) is identical:
Time Definition: Each range is defined by a specific Start Time and a fixed 30-second duration. The timestamp function, using the "America/New_York" time zone, is used to calculate the exact start time in Unix milliseconds for the current day.
Example: t0200 = timestamp(TZ, yC, mC, dC, 2, 0, 0) sets the start time for the 02:00 OR to 2:00:00 AM NY time.
Range Data Collection: The indicator uses the request.security_lower_tf() function to collect the High (hArr) and Low (lArr) prices of all bars that fall within the defined 30-second window, using a user-specified, sub-chart-timeframe (openrangetime, defaulted to "1" second, "30S", or "5" minutes). This ensures high precision in capturing the exact high and low during the 30-second window.
High/Low Determination: It iteratively finds the absolute highest price (OR_high) and the absolute lowest price (OR_low) recorded by the bars during that 30-second window.
Range Locking: Once the current chart bar's time (lastTs) passes the 30-second End Time (tEnd), the High and Low are locked (OR_locked = true), meaning the range calculation is complete for the day.
Drawing: Upon locking, the range is drawn on the chart using line.new for the High, Low, and Equilibrium, and box.new for the shaded fill. The lines are extended to a subsequent time anchor point (e.g., the 02:00 OR is extended to 08:20, the 09:30 OR is extended to 16:00).
Equilibrium (EQ): This is calculated as the simple average (midpoint) of the High and Low of the range.
EQ=
2
OR_High+OR_Low
⏰ Defined Trading Ranges
The indicator defines and tracks the following specific 30-second ranges:
Range Name Type Start Time (NY) Line Extension End Time (NY) Common Market Context
02:00 OR Opening 02:00:00 08:20:00 Asian/European Market Overlap
08:20 OR Opening 08:20:00 16:00:00 Pre-New York Open
09:30 OR Opening 09:30:00 16:00:00 New York Stock Exchange Open (Most significant OR)
18:00 OR Opening 18:00:00 20:00:00 Futures Market Open (Sunday/Monday)
20:00 OR Opening 20:00:00 Next Day's session start Asian Session Start
15:50 CR Closing 15:50:00 20:00:00 New York Close Range
⚙️ Key User Inputs and Customization
The script offers extensive control over which ranges are displayed and how they are visualized:
Range Time & History
openrangetime: Sets the sub-timeframe (e.g., "1" for 1 second) used to calculate the precise High/Low of the 30-second range. Crucial for accuracy.
showHistory: A toggle to show the ranges from previous days (up to a histCap of 50 days).
Range Toggles and Styling
On/Off Toggles: Independent input.bool (e.g., OR_0200_on) to enable or disable the display of each individual range.
Colors & Width: Separate color and width inputs for the High/Low lines (hlC), the Equilibrium line (eqC), and the background fill (fillC) for each range.
Line Styles: Global inputs for the line styles of High/Low (lineStyleInput) and Equilibrium (eqLineStyleInput) lines (Solid, Dotted, or Dashed).
showFill: Global toggle to enable the shaded background box that highlights the area between the High and Low.
Extensions
The script calculates and plots extensions (multiples of the initial range) above the High and below the Low.
showExt: Toggles the visibility of the extension lines.
useRangeMultiples: If true, the step size for each extension level is equal to the initial range size:
Step=Range=OR_High−OR_Low
If false, the step size is a fixed value defined by stepPts (e.g., 60.0 points, which is a common value for NQ futures).
stepCnt: Determines how many extension levels (multiples) are drawn above and below the range (default is 10).
📈 Trading Strategy Implications
The Cold Brew Ranges indicator is a tool for session-based support and resistance and range breakout/reversal strategies.
Key Support/Resistance: The High and Low of these defined opening ranges often act as strong, predefined price levels. Traders look for price rejection off these boundaries or a breakout with conviction.
Equilibrium (Midpoint): The EQ often represents a fair value for that specific session's opening. Movements away from it are seen as opportunities, and a return to it is common.
Extensions: The range extensions serve as potential profit targets or stronger, layered support/resistance levels if the market trends aggressively after the opening range is set.
The core idea is that the activity in the first 30 seconds of a significant trading session (like the NYSE or a market session open) sets a bias and initial boundary for the trading period that follows.
Session Highs and Lows🔑 Key Levels: Session Liquidity & Structure Mapper
The Key Levels indicator is an essential tool for traders as it automatically plots and projects critical Highs and Lows established during key trading sessions. These levels represent major liquidity pools and define the current market structure, serving as high-probability targets, support, or resistance for the remainder of the trading day.
⚙️ Core Functionality
The indicator operates in two distinct modes, tailored for different asset classes:
1. Asset Class Mode (Toggle)
You can switch between two predefined setups depending on the asset you are trading:
Stock Mode (RTH/ETH): Designed for US stocks and futures (e.g., NQ, ES, YM). It tracks and projects levels for Regular Trading Hours (RTH) (09:30-16:00) and Extended Hours (ETH) (16:00-09:30).
Forex/Default Mode (Asia/London/NY): Designed for global markets (e.g., currency pairs). It tracks and projects levels for the three major liquidity sessions: Asia (19:00-03:00), London (03:00-09:30), and New York (09:30-16:00).
🗺️ Key Levels Mapped
The script continuously tracks and plots the most significant structural levels:
Current Session High/Low: The running high and low of the currently active session.
Previous Session High/Low: The confirmed high and low from the most recently completed session. These are often targeted by market makers.
Previous Day High/Low (PDH/PDL): The high and low of the prior 24-hour day, acting as major structural boundaries and a crucial macro market filter.
🎛️ Advanced Liquidity Management
The indicator is built with specific controls for high-level liquidity analysis:
Extend Through Sweeps (Critical Setting):
OFF (Recommended): The projected line is automatically stopped or deleted the moment the price candle wicks or closes past it. This visually confirms that the liquidity at that level has been "swept" or "mitigated."
ON: The line extends indefinitely, treating the level as simple support/resistance, regardless of interaction.
Previous vs. Current View: You can select a checkbox (e.g., Use PREVIOUS London Level) to hide the current session's running levels and only display the static, confirmed high/low from the prior completed session. This helps declutter the chart and focus only on the confirmed structural levels.
Show Older History: Toggle to keep lines from prior days visible, allowing you to track multi-day structural context.
🎯 Trading Application
The lines plotted by the Key Levels indicator provide immediate, actionable information:
Bias Filter: Use the PDH/PDL to determine the overall market context. Trading above the PDH suggests a bullish bias, while trading below the PDL suggests a bearish bias.
Manipulation/Entry: Wait for price to aggressively sweep a Previous Session High/Low (line stops extending). This often signals a liquidity grab or "manipulation" phase. Look for entries in the opposite direction for the main move (Distribution).
Targets: Key levels (especially unmitigated ones) serve as excellent, objective take-profit targets for active trades.
Market Structure Pro + (@JP7FX)Market Structure Pro Plus (JP7FX)
Market Structure Pro Plus identifies swing highs and swing lows using a three candle confirmation method. It highlights liquidity behaviour and market structure shifts without manual marking.
Swing Point Detection
The indicator marks swing highs and lows when the middle candle in a three candle sequence forms the highest high or lowest low.
This approach reacts to local price behaviour and does not rely on a large lookback period.
Liquidity Grab Signals
The indicator highlights when price trades beyond a previous swing high or swing low and then returns.
These events help users review how liquidity is taken around prior highs and lows.
Break of Structure Signals
The indicator marks a break of structure when a candle closes beyond a previous swing point.
Bullish structure change signals occur when price closes above a prior swing high.
Bearish structure change signals occur when price closes below a prior swing low.
Deviation Stats and Projections
The script tracks how far price extends beyond the last confirmed swing high or swing low, in pips, after liquidity is taken.
It keeps a rolling history of these extensions and calculates an average combined extension for recent moves.
This average is shown in a small stats table as “Avg SD High/Low”.
Using this value, the indicator projects two reference levels from the latest confirmed swing:
• a “Deviation High” line projected from the last swing high
• a “Deviation Low” line projected from the last swing low
These projection lines are drawn as dotted levels with labels and can be used as reference zones based on recent extension behaviour.
Features
• Automatic swing high and swing low detection
• Liquidity grab marking
• Break of structure marking
• Deviation stats table with average extension value
• Projection lines for Deviation High and Deviation Low
• Alerts for liquidity grabs and structure changes
• Market type setting for forex, stock, crypto, commodity and futures
• Customisable colours, line styles and visibility options
• Works across all timeframes and assets
Use Cases
Useful for traders who study market structure, track trend shifts, or review liquidity and extension behaviour around highs and lows.
The indicator reduces manual chart work by highlighting swing points, structure changes and typical extension zones in real time.
Dual SMT - Standard & Hidden [Pogiest]General
Smart Money Technique (SMT) involves identifying divergences in a correlated asset triad to predict new phases of price, a shift in market sentiment, and also potential trend reversals. An SMT divergence occurs when one or two assets makes a new high or low, but the other asset or assets does not, signaling a potential shift in market direction. A Hidden SMT Divergence occurs when one or two assets’ closing price closes higher or lower than the other one or two assets’ closing price. However, with potential gaps in price, an opening price can also be the extreme when comparing assets for divergences. Hidden SMT divergence compares the candle bodies while a Standard SMT divergence compares the highs and lows. Both types of SMTs are considered to be cracks in correlation and can be used to identify potential new phases of price whether it be a reversal, retracement, consolidation, and continuation.
Note: Credit of concepts/ideas goes to ICT and TraderDaye.
What Makes This Indicator Unique
The indicator has the ability to display Standard SMTs, Hidden SMTs, or both simultaneously in real-time, tick by tick in the time period selected in a correlated asset triad. Toggle modes for each type of SMT will run independently (runs when enabled) and therefore, optimizes performance. Option to select three different tickers in settings instead of limiting analysis to pairs makes this indicator more versatile. In addition, the indicator has “Invert” toggle options to track both Standard and Hidden SMTs for assets with negative correlations.
Instead of confirming SMT by selecting the number of pivots to look back for detection and confirmation, lines will be plotted on the chart on the first tick it detects a divergence. This can help traders anticipate SMTs in advance and give early warnings instead of waiting for a pivot confirmation. Active lines are displayed on the chart when the indicator identifies a divergence from the current time range to the previous time range in a correlated asset triad. These lines will move dynamically tick by tick on the chart and are anchored to the exact high/lows (Standard SMT) or bodies extremes (Hidden SMT). For inverted symbols, the lines will plot at the inverted anchor points. If new extremes are being made, the lines will move dynamically with the current forming candle for visual precision. During the current time period, the indicator continues to scan for new highs/lows as well as scanning the body high/lows while making line adjustments automatically. Lines will get deleted once the SMT becomes invalid.
The indicator is also designed for consecutive time ranges or cycles. Users are able to select the timeframe to monitor divergences which the indicator has multiple options to choose from including the most used timeframes (i.e. Monthly, Weekly, Daily, 6HR, 4HR, 90M, 1HR, 30M, 15M, etc). For example, if the 90m timeframe is selected, then the indicator will scan for divergences at the extremes in the current 90m cycle and compare the extremes to the previous 90m cycle. The indicator is designed to work when viewing lower timeframes while selecting higher timeframe cycles in settings.
There are four separate alert systems included in this indicator consisting of Standard bull/bear and Hidden bull/bear. Indicator is mode-aware and only triggers when alerts are enabled.
Dynamic Capabilities
Active (Real-Time):
For Standard SMT (High/Low), the indicator scans for divergences using the absolute highs and lows of each candle:
• Bull SMT: Compares the lowest points (wicks included).
• Bear SMT: Compares the highest points (wicks included).
In addition to SMT lines being plotted immediately after detection and lines moving dynamically at new high/low extremes, the indicator will remove the SMT automatically at the first tick it detects the divergence becoming invalid (i.e. all assets made a higher high or lower low in two consecutive time periods). Standard SMT labels are displayed as "SMT - TF" and are anchored to the center of the SMT line.
For Hidden SMT (Bodies), the indicator scans for divergences using only the candle body extremes (open/close, ignoring wicks):
• Bull SMT: Compares the lowest body prices (min of open/close) - divergence based on where bodies close, not wicks.
• Bear SMT: Compares the highest body prices (max of open/close) - divergence based on where bodies close, not wicks.
In addition to SMT lines being plotted immediately after detection and lines moving dynamically following the body high/low extremes, the indicator will remove the SMT automatically once the divergence becomes invalid (i.e. all assets made a higher high or lower low with the body extremes in two consecutive time periods). Hidden SMT labels are displayed as "SMT - TF" and are anchored to the center of the SMT line.
Historical (Fixed Plotting):
Once an SMT divergence (Standard or Hidden) was active and the current time range completes, the SMT line will be plotted and fixed on the chart as a historical line as the new time range starts. When the new time range starts, the cycle resets and the indicator scans for a new active SMT line in the current time range compared to the previous time range. Historical lines are stored for Standard SMT (up to 5) and Hidden SMT (up to 5) for the most recent lines.
Inverse SMT lines (Negative Correlation):
Assets with a negative correlation can be selected in settings with the Invert toggle option selected in settings. SMT divergences for both Standard and Hidden SMTs will be plotted on the chart at their respective anchor points from the previous time cycle to the current time cycle. Lines will behave normally as how it functions when the invert toggle is deselected. However, the lines are inverted on the chart with bullish SMT lines at the highs or bearish SMT lines at the lows.
Usage
Traders can use both types of SMT divergences to anticipate potential reversals in points of interest such as higher timeframe swing points, supply/demand zones, higher timeframe imbalances, key levels, etc. This indicator can also be beneficial in identifying cracks in correlation via Hidden SMT when there are no divergences off the highs and lows. SMT divergences (standard and hidden) can be used as a confirmation tool with other confluences to identify trend direction with respect to points of interest, higher timeframe order-flow, lower timeframe order-flow, etc. In addition, having both a Standard SMT and Hidden SMT divergence display could potentially signal a reversal. It is up to the trader to gauge the price action at the time.
Settings
1. Choose up to three different assets to monitor.
Note: If only two are selected, the indicator will only display the two selected and compare the two assets for divergences.
2. Choose up to one timeframe to monitor.
3. Enable/disable Invert mode.
4. For Standard and Hidden SMT: Enable/disable SMT-Active lines, option to change line style, line width, bull SMT line color, bear SMT line color, and bull/bear label text color.
5. For Standard and Hidden SMT: Enable/disable Historical SMT lines, adjust max historical SMT signals to be displayed (up to 5), option to change line style, line width, bull SMT line color, bear SMT line color, and bull/bear label text color.
6. For Standard and Hidden SMT: Show/hide SMT Labels and adjustable label offset.
7. Shared Label Settings: Adjust label size.
8. Enable/disable SMT Active alerts for Standard and Hidden SMT.
Risk Disclaimer
This indicator is for educational and informational purposes only and does not constitute financial advice. All trading and investment decisions remain solely the responsibility of the user.
Trading involves a high degree of risk, and past performance is not indicative of future results.
Always conduct your own research and consult with a qualified financial professional before making any trading decisions.
By using this indicator, users acknowledge they understand these risks and accept full responsibility for their trading decisions and outcomes.
Week high / Week low (Mo–Fr)The indicator tracks the weekly high and low levels of the market starting from Monday 00:00 and updates them throughout the week until Friday. It draws horizontal lines across the chart representing:
Weekly High
Weekly Low
Each level also displays a label that can be positioned in different ways depending on user settings.
🧠 How it works step-by-step
1. Every Monday a new week starts
When a new week begins:
The script stores the current candle’s high as the initial weekHigh
And the current candle’s low as weekLow
Previous week's lines and labels are deleted
New horizontal lines are created and extended to the right
Labels (for high & low) are placed initially at the start of the week
2. During Monday–Friday
On every candle:
If a new higher price is reached → weekly high updates
If a new lower price is reached → weekly low updates
The horizontal line moves to the new value
A saved index remembers where that high/low was created
3. Label Position Control
The user can choose how labels should be anchored:
Mode Meaning
Update point Label stays where the high/low occurred
Right edge Label always moves to the current bar (right end of week)
Right offset Like Right edge but shifted further right by X bars
You can also customize:
label background color
label text color
label size
whether the label points up/down (above or below the line)
line color, style, and width
4. Weekend behavior
On Saturday, the script stops extending the lines, effectively freezing the weekly high and low for that completed week.
Summary
This indicator is useful for traders who want automatic weekly levels, visually clean chart structure, and customizable label placement. It tracks market structure weekly, keeps levels persistent across the chart, and lets you choose exactly how those levels appear.
If you want, I can also create:
✔ previous week high/low
✔ midline (50% of the range)
✔ alerts when price breaks the weekly high/low
✔ highlight liquidity sweeps
ICC + Trident ORB UltimateICC + Trident ORB Ultimate – Indication / Correction / Continuation using multi-session ORB + confluence scoring
This tool is an intraday framework built around ICT-style Indication → Correction → Continuation (ICC) logic, using three coordinated Opening Range Boxes (“Trident ORB”) plus a confluence engine to grade breakouts and reversals.
It is not just a mashup of indicators. Each module has a specific role:
________________________________________
1. Core concept
The script combines:
• Three ORBs (“Trident”):
o European session ORB (bias & magnets)
o US Futures ORB (8:30 “engine” for the day)
o Cash session ORB (9:30 volatility filter)
• ICC structure:
o Indication – Directional bias from how price behaves around the Euro ORB (above = BULL, below = BEAR, inside = NEUTRAL).
o Correction – A dynamic Correction Zone built from the US Futures ORB (discount/premium area between ORB midline and range).
o Continuation – Qualified breakouts of the 8:30 ORB high/low, graded by a confluence score (A+/A/B/C).
• Confluence engine:
Optional filters (VWAP, RSI, FVG, SMT, swing structure, PDH/PDL, EMA stack, RTH) are combined into a single score and grade to highlight higher-probability continuation moves.
The goal is to give you one integrated view of:
session structure → day type → volatility → confluence → actionable breakouts/sweeps.
________________________________________
2. Trident ORB structure & day types
The script draws three configurable ORB boxes in your chosen timezone:
• Euro ORB (default 03:00–04:00)
o Defines early “indication” bias:
Above Euro high = BULL
Below Euro low = BEAR
Inside = NEUT
o On confirmed trend days, Euro high/low can be plotted as magnet levels (targets).
• US Futures ORB (8:30 ORB) (default 08:30–09:00)
o Main intraday “engine” box.
o The script tracks:
Breaks above/below the ORB
Rejections around the ORB midline
Sweeps – wicks that push past ORB high/low by a configurable % of the range, then close back inside.
• Cash ORB (default 09:30–10:00)
o Used as a volatility check: if the Cash ORB range is much wider than the 8:30 ORB, the day is flagged as “HIGH” volatility, and the confluence score is penalized.
Using the 8:30 ORB behavior, the script classifies the day type:
• TREND – multiple clean breaks and holding above/below the 8:30 ORB.
• RANGE – repeated rejections at the 8:30 midline with no clean break.
• TRAP – ORB sweeps (fake outs) that reverse back inside the range.
• TREND? / WAIT – early or uncertain structure.
Day type is shown both as a label on the chart and in the info table, and can optionally adjust the confluence score (e.g., penalty on TRAP/RANGE days, bonus on TREND days).
________________________________________
3. Confluence scoring (what feeds the A+/A/B/C grades)
For both long (BULL) and short (BEAR) directions, the indicator builds a score from several components:
• VWAP filter – price above/below VWAP.
• RSI filter – RSI within user-defined bullish/bearish bands.
• FVG detection – recent 3-bar Fair Value Gaps (weighted +2).
• SMT divergence – comparison vs. a second symbol (default ES1!):
o Bearish SMT = your chart makes a higher high while SMT ticker doesn’t confirm.
o Bullish SMT = your chart makes a lower low while SMT ticker doesn’t confirm.
• Swing / PDH-PDL proximity – recent swing highs/lows and prior-day high/low.
• EMA stack – 9/21/50 EMA alignment in trend direction.
• RTH session – optional extra point when inside regular trading hours.
On top of this base score, two modifiers can be applied:
• Day type modifier – e.g., +1 on TREND days, −1 on RANGE, −2 on TRAP (optional).
• Cash ORB volatility modifier – penalty when Cash ORB is abnormally wide.
The final result is:
• 0+ score per side (bull/bear)
• Letter grade:
o 5+ = A+
o 4 = A
o 3 = B
o <3 = C
Each label includes both the grade and the factors that contributed (e.g. A BULL (4pts) VWAP✓ RSI✓ FVG+2 ), so you can see why a signal printed.
________________________________________
4. Signals, sweeps & targets
Continuation signals (main entries)
• Bull continuation:
o Price crosses above the US Futures ORB high.
o Bull confluence score ≥ your Minimum Score to Show Signal.
o Not blocked by TRAP logic if ORB priority is enabled.
• Bear continuation:
o Price crosses below the US Futures ORB low.
o Bear confluence score meets the same threshold.
On these bars, the script plots BULL/BEAR labels with grade and factor list, colored by score. Optional alerts fire with the same information and day type included.
Sweep reversal signals (trap fades)
Separately from continuation, the script can highlight sweep reversals:
• Bull sweep signal:
o The 8:30 ORB low is swept (wick extends beyond low by X% of the ORB range and closes back inside).
o Euro indication is neutral or bullish.
• Bear sweep signal:
o The 8:30 ORB high is swept and price closes back inside, with a neutral or bearish indication.
These plot SWEEP↑ / SWEEP↓ labels and can trigger alerts, giving you a structured way to see trap-style reversals rather than random wicks.
Targets & correction zone
• Correction Zone:
o A shaded box extending right from the 8:30 ORB that marks the “correction” area between ORB midline and range boundary (different placement for long vs short bias).
o This is your primary pullback zone within the ICC framework.
• Expansion targets:
o Optional T1/T2/T3 lines at ±1.0, ±1.5 and ±2.0 times the 8:30 ORB range from the ORB high/low.
o These serve as simple volatility-based reference targets for partials or exhaustion zones.
________________________________________
5. Info table & optional overlays
A compact table in the top-right corner summarizes the environment at the latest bar:
• VWAP (above/below)
• RSI value (color-coded)
• FVG / SMT state (Bull/Bear/none)
• EMA stack (Bull/Bear/flat)
• Day type (TREND/TRAP/RANGE/etc.)
• Cash volatility (HIGH/OK)
• RTH (Yes/No)
• Last sweep (High/Low/none)
• Current bull/bear grades
Optional visual layers can be toggled on/off:
• FVG boxes
• SMT labels
• EMA lines
• VWAP line
• Prior Day High/Low lines
• Euro magnet levels
• ORB history, midlines, correction zone and targets
This allows you to keep the chart clean or fully instrumented depending on your preference.
________________________________________
6. How to use (practical workflow)
1. Load on an intraday timeframe (e.g., 1–5 minutes) and set the ORB times to match your broker/session if needed.
2. Watch the Trident ORBs form:
o Note the Euro “Indication” (BULL/BEAR/NEUT).
o Once the 8:30 ORB completes, monitor day type classification and Cash ORB volatility.
3. During the session:
o On trend days, focus on A+/A BULL/BEAR continuation labels that break the 8:30 ORB in the direction of Euro indication, ideally from inside the Correction Zone.
o On trap/range days, pay more attention to SWEEP↑ / SWEEP↓ signals and be conservative with continuation.
4. Use expansion targets as objective reference areas for partials and risk-to-reward planning.
5. Adapt filters & thresholds:
o Tighten Minimum Score to Show Signal for fewer, higher-quality signals.
o Turn specific filters on/off (FVG, SMT, EMA, VWAP, etc.) to match your own testing and market.
This script does not place trades or manage risk. It is a discretionary decision-support tool and should be combined with your own risk management and testing. Nothing here is financial advice.
EMA Market Structure [BOSWaves]EMA Market Structure - Trend-Driven Structural Mapping with Adaptive Swing Detection
Overview
The EMA Market Structure indicator provides an advanced framework for visualizing market structure through dynamically filtered trend and swing analysis.
Unlike conventional EMA overlays, which merely indicate average price direction, this model integrates trend acceleration, swing highs/lows, and break-of-structure (BOS) logic into a unified, visually intuitive display.
Each element adapts in real time to price movement, offering traders a living map of support, resistance, and trend bias that reacts fluidly to market momentum.
The result is a comprehensive, trend-aware representation of price structure.
EMA slope and acceleration guide trend perception, while swing points identify key inflection zones.
Breaks of prior highs or lows are highlighted with visual BOS labels and stop-loss projections, giving traders actionable context for continuation or reversal setups.
Unlike static lines or simple moving averages, the EMA Market Structure indicator fuses dynamic trend analysis with structural awareness to provide a clear picture of market bias and potential turning points.
Theoretical Foundation
The EMA Market Structure builds on principles of momentum filtering and structural analysis.
Standard moving averages track average price but ignore acceleration and context; this indicator captures both the directional slope of the EMA and its rate of change, providing a proxy for trend strength.
Simultaneously, swing detection identifies statistically significant highs and lows, while BOS logic flags decisive breaks in structure, aligned with trend direction.
At its core are three interacting components:
EMA Trend & Acceleration : Smooths price data while highlighting acceleration changes, producing gradient-driven color cues for trend momentum.
Swing Detection Engine : Identifies swing highs and lows over configurable bar lengths, ensuring key turning points are captured with minimal clutter.
Break-of-Structure Logic : Detects price breaches of previous swings and aligns them with EMA trend for actionable BOS signals, including projected stop-loss levels for tactical decision-making.
By integrating these elements, the system scales effectively across timeframes and assets, maintaining structural clarity while visualizing trend dynamics in real time. Traders receive both macro and micro perspectives of market movement, with clear cues for trend continuation or reversal.
How It Works
The EMA Market Structure indicator operates through layered processing stages:
EMA Slope & Acceleration : Calculates the EMA and its rate of change, normalizing via ATR and a smoothing function to produce gradient color coding. This allows instant visual identification of bullish or bearish momentum.
Swing Identification : Swing highs and lows are computed using configurable left/right bar lengths, filtered through a cool-off mechanism to prevent redundant signals and maintain chart clarity.
Structural Lines & Zones : Swing points are connected with lines, and shaded zones are drawn between successive highs/lows to highlight key support and resistance regions.
Break-of-Structure Detection : BOS events occur when price breaches a prior swing in alignment with the EMA trend. Bullish and bearish BOS signals include enhanced label effects and projected stop-loss lines and zones, providing immediate tactical reference.
Dynamic Background Mapping : The chart background adapts to EMA trend direction, reinforcing trend context with subtle visual cues.
Through these processes, the indicator creates a living, adaptive map of market structure that reflects both trend strength and swing-based inflection points.
Interpretation
The EMA Market Structure reframes market reading from simple trend following to structured awareness of price behavior:
Uptrend Phases : EMA is rising with positive acceleration, swings confirm higher lows, and BOS events occur above prior highs, signaling trend continuation.
Downtrend Phases : EMA slope is negative, swings form lower highs, and BOS events occur below prior lows, confirming bearish bias.
Trend Reversals : Flat or decelerating EMA with BOS failures may indicate impending structural change.
Critical Zones : Swing-based lines and shaded zones highlight areas where price may pause, reverse, or accelerate, providing high-probability decision points.
Visually, EMA color gradients, structural lines, and BOS labels combine to provide both statistical trend confirmation and actionable structural cues.
Strategy Integration
EMA Market Structure integrates seamlessly into trend-following and swing-based trading systems:
Trend Alignment : Confirm higher-timeframe EMA slope before entering continuation trades.
BOS Entry Triggers : Use BOS events aligned with EMA trend for tactical entries and stop placement.
Support/Resistance Mapping : Swing lines and zones help define areas for scaling, exits, or reversals.
Volatility Context : ATR-based smoothing and stop-loss buffers accommodate varying market volatility, ensuring robustness across conditions.
Multi-Timeframe Coordination : Combine higher-timeframe EMA trend and swings with lower-timeframe structural events for precision entries.
Technical Implementation Details
Core Engine : EMA slope and ATR-normalized acceleration for gradient-driven trend visualization.
Swing Framework : Pivot-based high/low detection with configurable bar lengths and cool-off intervals.
Structural Visualization : Lines, zones, and labels for high-fidelity mapping of support/resistance and BOS events.
BOS Engine : Detects structural breaks aligned with EMA trend, automatically plotting stop-loss lines and visual cues.
Performance Profile : Lightweight, optimized for real-time responsiveness across multiple timeframes.
Optimal Application Parameters
Timeframe Guidance:
1 - 5 min : Ideal for intraday swing spotting and microstructure trend tracking.
15 - 60 min : Medium-range structural analysis and BOS-driven entries.
4H - Daily : Macro trend mapping and key swing-based support/resistance identification.
Suggested Configuration:
EMA Length : 50
Swing Length : 5
Swing Cooloff : 10 bars
BOS Cooloff : 15 bars
SL Buffer : 0.1%
These suggested parameters should be used as a baseline; their effectiveness depends on the asset volatility, liquidity, and preferred entry frequency, so fine-tuning is expected for optimal performance.
Performance Characteristics
High Effectiveness:
Trending markets with defined swings and structural consistency.
Markets where EMA slope and acceleration reliably indicate momentum changes.
Reduced Effectiveness:
Choppy or sideways markets with minimal swing definition.
Random walk assets lacking clear structural anchors.
Integration Guidelines
Confluence Framework : Combine with volume, momentum, or BOSWaves structural indicators
to validate entries.
Directional Control: Follow EMA slope and BOS alignment for high-conviction trades.
Risk Calibration: Use SL projections for disciplined exposure management.
Multi-Timeframe Synergy: Confirm higher-timeframe trend before executing lower-timeframe structural trades.
Disclaimer
The EMA Market Structure is a professional-grade trend and structure visualization tool. It is not predictive or guaranteed profitable; performance depends on parameter tuning, market regime, and disciplined execution. BOSWaves recommends using it as part of a comprehensive analytical stack integrating trend, liquidity, and structural context.
Auto 5-Wave Fixed Channel + Wave 5 Top / Wave 2-ABC BottomAuto 5-Wave Fixed Channel + Wave 5 Top / Wave 2-ABC Bottom
by Ron999
1. What this indicator does
This tool automatically hunts for bullish 5-wave impulse structures and then:
Labels the waves: W1, W2, W3, W4, W5
Draws a fixed “acceleration” channel based on the wave structure
Projects a Wave-5 target zone using a 1.618 extension
Marks the Wave-2 level as an ABC correction target
Triggers optional alerts when:
A new Wave-5 top completes
An ABC bottom forms back near the Wave-2 low
It’s designed as a mechanical, rule-based approximation of Elliott 5-wave impulses – built for traders who like the idea of wave structure but want something objective and programmable.
2. How the wave logic works
The script continuously scans for pivot highs and lows using a user-defined Pivot Length.
It only keeps the last 5 alternating pivots (high → low → high → low → high).
When those last 5 pivots form this pattern:
Pivot 1 → High (W1)
Pivot 2 → Low (W2)
Pivot 3 → High (W3)
Pivot 4 → Low (W4)
Pivot 5 → High (W5)
…the indicator treats this as a bullish 5-wave impulse.
When such a structure is detected, it “locks in” the wave prices and bars and draws the channels and labels.
Note: Pivots are only confirmed after Pivot Length bars, so swings are slightly delayed by design (standard pivot logic).
3. Channels & levels
Once a valid bullish 5-wave structure is found, the script builds three key pieces:
a) Base Acceleration Channel (Blue)
Anchored from Wave-2 low toward Wave-3 high.
This forms a rising acceleration channel that represents the impulse leg.
The channel extends to the right, so you can see how price interacts with it after W3–W5.
b) Wave-5 Target Line (Red, dashed)
Uses the height from Wave-2 low to Wave-3 high.
Projects a 1.618 extension of that height above Wave-3.
This line acts as a potential Wave-5 exhaustion zone (take-profit / reversal watch area).
c) Wave-2 / ABC Bottom Level (Green, dotted)
Horizontal line drawn at the Wave-2 low.
This acts as a retest / corrective target for the ABC correction after the impulse completes.
When price later revisits this area (within a tolerance), the script can mark it as a potential ABC bottom.
4. Labels & signals
If labels are enabled:
W1, W2, W3, W4, W5 are plotted directly on their corresponding pivot bars.
When an ABC-style retest is detected near the Wave-2 level, an “ABC” label is printed at that low.
Wave-5 Top Event
Triggered when a new valid bullish 5-wave structure is completed.
The last pivot high in the pattern is flagged as Wave-5.
ABC Bottom Event
After a Wave-5 impulse, the script watches for new low pivots.
If a new low forms within ABC Bottom Proximity (%) of the Wave-2 price, it is treated as an ABC bottom near Wave-2 and marked on the chart.
5. Inputs & customization
Show Fixed Channels
Toggle all channel drawing on/off.
Label Waves
Toggle plotting of W1–W5 and ABC labels.
Alerts: Wave-5 Top & ABC Bottom
Master switch for enabling the script’s alert conditions.
Pivot Length
Controls how “swingy” the detection is.
Smaller values → more frequent, smaller waves
Larger values → fewer, larger structural waves
ABC Bottom Proximity (%)
Allowed percentage distance between the ABC low and the Wave-2 price.
Example: 5% means any ABC low within ±5% of Wave-2 is considered valid.
6. Alerts (how to use them)
The script exposes two alertcondition() events:
Wave-5 Top (Bullish Impulse)
Fires when a new 5-wave bullish structure completes.
Use this to watch for potential exhaustion tops or to tighten stops.
ABC Bottom near Wave-2 Low
Fires when an ABC-style correction prints a low near the Wave-2 level.
Use this to stalk potential end-of-correction entries in the direction of the original impulse.
On TradingView, add an alert to the script and choose the desired condition from the dropdown.
7. How to use it in your trading
This tool is best used as a structural context layer, not a standalone system:
Identify bullish impulsive trends when a Wave-5 structure completes.
Use the Wave-5 target line as a potential area for:
Scaling out
Watching for exhaustion / divergences / reversal patterns
Use the Wave-2/ABC level and ABC Bottom signal:
To look for end of correction entries back in the trend direction
To align with your own confluence (support/resistance, volume, RSI, etc.)
It works well on crypto, FX, indices, and stocks, especially on higher timeframes where structure is cleaner.
8. Limitations & notes
This is a mechanical approximation of Elliott 5-wave theory — it will not match every analyst’s discretionary count.
Pivots are confirmed after Pivot Length bars, so signals are not instant; they’re based on completed swings.
The indicator currently focuses on bullish impulses (upward 5-wave structures).
As always, this is not financial advice. Combine it with your own strategy, risk management, and confirmation tools.
Created & coded by: Ron999
Built for traders who want wave structure + fixed channels, without the subjective Elliott argument on every chart. files.catbox.moe
Morning ORB FVG Trigger✅ Overview
Morning ORB FVG Trigger is a complete intraday trading framework built around:
A Morning Opening Range Breakout (ORB)
The first Fair Value Gap (FVG) after that breakout
Strict risk management and position sizing
Optional HTF trend filter (Daily / Weekly / Monthly)
Optional Daily ATR filter to avoid extreme days
The script is designed for futures / indices / FX on intraday charts up to 15 minutes and for traders who want a clean, mechanical entry framework with clear risk.
🧠 Core idea
Define a morning opening range (e.g. 09:30–09:45).
Wait for a clean breakout above/below that range.
After the breakout, wait for the first FVG in breakout direction,
confirmed by the next candle (no immediate full reclaim).
Use a chosen stop logic + R:R factor to build risk/reward boxes.
Calculate position size based on your account risk.
(Optional) Only take trades:
In the direction of the HTF EMA trend (D/W/M).
On days where the morning range is within a band of the Daily ATR.
You can also disable all signals/boxes and use the script just as a visual ORB tool.
⏰ 1. ORB / Morning Range
Inputs (Main section)
Morning Range Session
Time window of the opening range in exchange time
Example: 09:30–09:45 for a 15-minute ORB.
You can type custom ranges (e.g. 09:30–09:35 for a 5-minute ORB).
Risk/Reward (TP factor)
Multiplier for the take-profit distance relative to the stop.
2.0 = TP is 2× the stop distance
1.5 = TP is 1.5× the stop distance
Show ORB range
If enabled, draws:
ORB high/low lines
ORB labels (e.g. 15min ORB high / low)
Optional midline
Extend ORB lines to the right (bars)
How many bars to extend the ORB high/low horizontally beyond the ORB itself.
Trade box width (bars)
Horizontal width (in bars) of:
Red risk box (entry–stop)
Green reward box (entry–TP)
Implementation details
The ORB is always calculated on 1-minute data internally, so it stays precise even on 5m/15m charts.
The script only works on intraday timeframes up to 15 minutes.
📦 2. FVG Block
Group: “FVG”
Threshold %
Minimum size of an FVG in % of price.
0 = every FVG
Higher values = only larger gaps
Auto threshold (from volatility)
If enabled, the minimum FVG size is derived from historical volatility
instead of a fixed percentage.
Allow breakout FVG partly inside ORB
Off (default): the FVG must lie fully outside the ORB.
On: the breakout FVG itself may still overlap the ORB a bit,
as long as it is the first one attached to the breakout move.
Enable FVG entry signals, boxes & alerts
On: full system – FVG detection, entry labels, risk/TP boxes, alerts.
Off: no entries, no risk/TP boxes, no alerts.
You only get the ORB and (optionally) the HTF dashboard, so you can trade your own setups.
Entry mode
Entry mode (Mid / Edge / NextOpen)
Mid – Entry at the midpoint of the FVG.
Edge – Long at the upper FVG edge, short at the lower FVG edge.
NextOpen – No limit order in the gap. Entry is placed at the next bar open after FVG confirmation.
Edge offset (ticks)
Additional offset for Edge entries:
Long:
+ticks = a bit above the FVG (more conservative)
-ticks = deeper into the FVG (more aggressive)
Short:
+ticks = a bit below the FVG
-ticks = deeper into the FVG
FVG detection logic
Uses a LuxAlgo-style 3-candle FVG pattern (gap between candle 1 and 3).
Only one FVG is taken: the first valid FVG after the ORB breakout in breakup direction.
The FVG candle is the middle bar; the script:
Detects the FVG on the previous bar.
Waits for the current bar to confirm it:
Bullish: current low must stay above the lower FVG boundary
Bearish: current high must stay below the upper FVG boundary
Only then an entry signal is generated.
🛑 3. Stop Logic
Group: “Stop Logic”
Stop mode (PrevBar / Pivot / FVG Candle)
PrevBar – Stop at the low/high of the candle before the FVG
(tight/aggressive).
FVG Candle – Stop at the low/high of the FVG candle itself
(medium).
Pivot – Stop at the most recent swing high/low
using pivotLeft / pivotRight pivots (more conservative).
Ticks (stop buffer)
Offset (in ticks) from the selected stop level.
> 0 = further away (more room, more risk)
< 0 = closer (tighter stop)
Pivot left / Pivot right
Number of candles left/right to define a swing high/low
when using Pivot stop mode.
Typical intraday values: 2–3.
The script also sanity-checks the stop:
if the calculated stop would be invalid (e.g. above entry in a long), it moves it by a minimal distance (2 ticks) to keep a valid risk.
📈 4. HTF Trend Filter (Daily / Weekly / Monthly)
Group: “HTF Trend Filter”
Enable HTF trend filter
If enabled, trades are only allowed:
Long when at least 2 of D/W/M closes are above their EMA
Short when at least 2 of D/W/M closes are below their EMA
EMA length (D/W/M)
EMA length for all three higher timeframes (Daily, Weekly, Monthly).
This helps focus entries in the direction of the dominant higher-timeframe trend.
📊 5. ATR Filter (Daily)
Group: “ATR Filter (Daily)”
Use daily ATR filter
If enabled, the height of the ORB (ORB high – ORB low) must be within
a band of the Daily ATR to allow any signals.
Daily ATR length
ATR period on the Daily timeframe.
Min ORB size vs ATR
Lower bound:
Example: 0.3 → ORB must be at least 0.3 × Daily ATR
0.0 = no minimum.
Max ORB size vs ATR
Upper bound:
Example: 1.5 → ORB must be ≤ 1.5 × Daily ATR
0.0 = no maximum.
If the ORB is too small (choppy) or too large (exhausted move), no breakout or FVG signal will be generated on that day.
🧭 6. HTF Dashboard & Signal Labels
Group: “HTF Trend Dashboard”
Show HTF dashboard
Draws a small label at the top of the chart showing:
HTF Trend (EMA X)
D: UP/FLAT/DOWN
W: UP/FLAT/DOWN
M: UP/FLAT/DOWN
Dashboard position
Top Right, Top Center, Top Left – places the dashboard at the top.
Over Risk Info – no top dashboard; instead, the HTF trend info is shown as a label near the risk box when a new signal appears.
Lookback (bars) for top anchor
How many bars to use to determine the top price level for dashboard placement.
Show HTF trend above risk box on signal
Only relevant if Dashboard position = Over Risk Info.
When enabled, a small HTF label appears near the risk box for each new trade.
Signal label vertical offset (ticks)
Vertical spacing between risk info label and HTF label.
Minimum spacing HTF/Risk (ticks)
Ensures a minimum vertical distance so the two labels don’t overlap.
HTF signal label X offset (bars)
Horizontal offset (left/right) relative to the risk info label.
⏳ 7. ORB–FVG Filters (Session & Time Window)
Group: “ORB FVG Filter”
Only same session day
If enabled, FVG entries are only allowed on the same calendar day
as the ORB. When the date changes, all state & drawings are reset.
Limit hours after ORB
Enables a time window after the ORB end.
Trading window after ORB (hours)
Length of that window in hours.
Example: 2.0 → FVG signals only in the first 2 hours after ORB end.
💰 8. Risk Management & Position Sizing
Group: “Risk Management”
Calculate position size
If enabled, the script computes suggested mini and micro contract size for you.
Account size
Your trading account size (in account currency).
Risk mode
Percent – risk is a % of account size (Account risk %).
Fixed amount – risk is a fixed dollar amount (Fixed risk ($)).
Account risk %
Risk per trade as a percentage of account size (e.g. 1.0 for 1%).
Fixed risk ($)
Fixed risk per trade in dollars when using Fixed amount mode.
Micro factor (vs mini)
How much a micro contract is worth relative to a mini.
Example:
0.1 → one micro moves 1/10 of one mini.
Risk Info label
For each new trade, a label is shown above the boxes with:
Stop distance in price and $ risk per mini
Max risk allowed for the trade
Suggested mini and micro size
Text like:
Suggested: 2 mini
Suggested: 5 micro
or Suggested: no trade
This makes the script especially useful for prop-firm rules or strict risk discipline.
🎨 9. Visual Style (Boxes, Labels, ORB Lines)
Group: “Box & Label Style (Trade)”
Label font size (Very small, Small, Normal, Large)
Entry label BG / text color
Stop label BG / text color
TP label BG / text color
Risk info BG / text color
Risk box color (entry–stop zone)
Reward box color (entry–TP zone)
Group: “ORB Style”
ORB high line color
ORB low line color
ORB line width
ORB label font size
ORB label background color
ORB label text color
Show ORB midline
ORB midline color / width / style (Solid / Dashed / Dotted)
⚠️ 10. Alerts
Group: “Alerts”
The script defines three alert conditions:
Long entry FVG breakout
Triggered when a new long signal appears.
Short entry FVG breakout
Triggered when a new short signal appears.
FVG entry (long/short)
Generic alert for any new signal (long or short).
To use them:
Add the indicator to the chart.
Open the Alerts dialog → “Condition”.
Select this script and one of the alert conditions.
Set your preferred expiration and notification settings.
Alerts only fire when Enable FVG entry signals, boxes & alerts is on.
🧩 11. How the trading logic flows (summary)
Build ORB on 1-minute data during the selected session.
Optionally reject the day if ORB is outside the ATR bounds.
Wait for a breakout (close above high or below low), respecting HTF trend filter.
After breakout, look for the first valid FVG in that direction:
Outside the ORB (unless breakout FVG allowed inside)
Confirmed by the next candle (no full reclaim)
Once confirmed:
Compute entry, stop, target.
Draw risk/reward boxes and all labels.
Optionally show HTF signal label over the risk info.
Trigger alerts if enabled.
If you disable FVG signals, only steps 1–3 (plus dashboard) are effectively active.
⚠️ 12. Notes & Disclaimer
Script is intended for intraday trading up to 15-minute timeframes.
All signals are mechanical and do not guarantee profitability.
Always backtest and forward-test on your own data before risking real money.
This script is for educational purposes only and is not financial advice.
🚀 Quick-start guide
Add the script to your chart
Use an intraday timeframe ≤ 15 minutes (1m, 3m, 5m, 15m).
Works best on liquid indices, futures, FX and large-cap stocks.
Set the Morning Range
In “Morning Range Session” choose the exchange’s opening window.
Examples
US index futures (CME): 08:30–08:45 or 08:30–08:35
US stocks (NYSE/Nasdaq): 09:30–09:45 or 09:30–09:35
The ORB is always calculated on 1-minute data internally, so the range stays accurate on higher intraday charts.
Keep the default filters at first
HTF Trend Filter: ON
EMA length = 20
This will only allow trades in the direction of the dominant D/W/M trend.
ATR Filter: OFF (optional; you can enable later once you’re comfortable).
Use the full trade system
In the FVG group leave
“Enable FVG entry signals, boxes & alerts” = ON
Entry mode: Mid
Stop mode: FVG Candle or PrevBar
Risk/Reward: 2.0 as a starting point.
Set your risk
Turn on “Calculate position size”.
Enter your Account size and choose either:
Risk mode = Percent (e.g. 1.0 = 1% per trade), or
Risk mode = Fixed amount (e.g. $250 per trade).
The risk info label will show:
Stop distance in price and $/contract
Max allowed risk
Suggested mini and micro contract size.
Enable alerts (optional)
Open the Alerts dialog → Condition: this script.
Choose one of:
Long entry FVG breakout
Short entry FVG breakout
FVG entry (long/short)
Choose “Once per bar” or “Once per bar close”, and your preferred notification type.
Replay & journal
Use the TradingView bar replay tool to step through past days.
Focus on:
How the ORB defines the structure.
How the first confirmed FVG outside the ORB behaves.
Whether the risk/TP levels fit your own style and product.
🎛 Recommended settings & profiles
These are starting points, not rules. Always adapt to the instrument and your own risk tolerance.
1. Conservative / Trend-following
Timeframe: 5m or 15m
Morning Range Session: 15-minute ORB around the cash or futures open
FVG
Threshold %: 0.05–0.1 (filter out very small gaps)
Auto threshold: OFF (keep it simple)
Allow breakout FVG partly inside ORB: OFF
Enable FVG entry signals/boxes/alerts: ON
Entry mode: Mid
Stop Logic
Stop mode: Pivot
Pivot left/right: 2–3
Stop buffer: +1–2 ticks
HTF Trend Filter
Enabled: ON
EMA length: 20
ATR Filter
Enabled: ON
Daily ATR length: 14
Min ORB vs ATR: 0.3–0.4
Max ORB vs ATR: 1.2–1.5
Risk Management
Risk mode: Percent
Account risk: 0.5–1.0%
Idea: Only trade when the higher-timeframe trend supports the move and the opening range is of a “normal” size for the current volatility.
2. Balanced / Intraday directional
Timeframe: 3m or 5m
FVG
Threshold %: 0.02–0.05
Auto threshold: ON (lets the script adapt to volatility)
Allow breakout FVG partly inside ORB: ON
(first breakout FVG may partly sit inside the ORB)
Entry mode: Edge
Edge offset (ticks): 0 or +1
Stop Logic
Stop mode: FVG Candle
Stop buffer: 0–1 ticks
HTF Trend Filter
Enabled: ON
ATR Filter
Enabled: OFF (optional)
Risk Management
Risk mode: Percent
Account risk: 1.0–1.5% (if this fits your plan)
Idea: Slightly more aggressive entries at the gap edge, still aligned with HTF trend, but with more flexibility on ATR.
3. Aggressive / Scalping around the ORB
Timeframe: 1m or 3m
FVG
Threshold %: 0.0–0.02
Auto threshold: ON
Allow breakout FVG partly inside ORB: ON
Entry mode: NextOpen or Edge with a negative offset (deeper into the gap)
Stop Logic
Stop mode: PrevBar
Stop buffer: 0 or -1 tick
HTF Trend Filter
Enabled: OFF (or ON but treat as soft guidance)
ATR Filter
Enabled: OFF
Risk Management
Risk mode: Percent
Account risk: lower, e.g. 0.25–0.5% per trade
Idea: More trades and tighter stops. Best for experienced traders who understand the limitations of scalping and whipsaw risk.
Final reminder
All of these are templates, not guarantees:
Always check how the system behaves on your market and session.
Start on replay and demo before trading real money.
Adjust filters (HTF, ATR, thresholds) until the signals fit your personal approach.
Madstrat Strategy - Dual TF# Madstrat Strategy - Dual TF: Complete User Guide
## Overview
The Madstrat Strategy indicator is a comprehensive forex trading system that identifies high-probability trade setups based on a day-counting methodology combined with multi-timeframe EMA alignment analysis. It generates two primary signal types:
1. **Day 3 Signals** - Based on the GSD/RSD (Green Setup Day/Red Setup Day) counting system
2. **Pure Price Action (PA) Signals** - Based on EMA alignment across multiple timeframes with EQ rejection
The indicator operates on **two timeframe combinations simultaneously**:
- **15-minute / 1-hour** combo
- **30-minute / 2-hour** combo
---
## Section 1: Timeframe Signals
### Settings
| Input | Default | Description |
|-------|---------|-------------|
| Show 15m/1hr Signals | ✓ Enabled | Displays signals from the 15-minute LTF with 1-hour HTF confirmation |
| Show 30m/2hr Signals | ✓ Enabled | Displays signals from the 30-minute LTF with 2-hour HTF confirmation |
| Trade Levels Source | Most Recent | Determines which combo draws SL/TP levels |
### How It Works
Each timeframe combination operates independently with its own:
- Signal spacing rules (4 bars for 15m, 2 bars for 30m = both equal ~1 hour)
- Daily signal limits (3 Day 3 signals + 3 Pure PA signals per combo per day)
- EMA alignment checks on both LTF and HTF
**Trade Levels Source Options:**
- **15m/1hr** - Only 15m/1hr signals draw trade levels
- **30m/2hr** - Only 30m/2hr signals draw trade levels
- **Most Recent** - Whichever signal fires most recently draws levels (15m/1hr takes priority if both fire simultaneously)
---
## Section 2: Signal Colors
Customize the appearance of each signal type for each timeframe combination:
### 15m/1hr Combo
| Signal Type | Default Color |
|-------------|---------------|
| Day 3 Buy | Blue |
| Day 3 Sell | Red |
| Pure PA Buy | Aqua |
| Pure PA Sell | Fuchsia |
### 30m/2hr Combo
| Signal Type | Default Color |
|-------------|---------------|
| Day 3 Buy | Teal |
| Day 3 Sell | Orange |
| Pure PA Buy | Lime |
| Pure PA Sell | Maroon |
---
## Section 3: Enhanced FBR Rules
### What is FBR?
**FBR (Failed Breakout Retest)** occurs when price breaks below the previous week's low (or above the previous week's high) but fails to close outside the range, closing back inside instead. This signals a potential reversal and resets the day count to "Day 1" of a new setup sequence.
### Settings
| Input | Default | Description |
|-------|---------|-------------|
| Enable Enhanced FBR Rule | ✓ Enabled | Prevents FBR detection after a clean breakout |
| Show Clean Breakout Labels | ✓ Enabled | Displays labels when clean breakouts occur |
| Bull Breakout Label Color | Blue (25% transparent) | Background color for bullish breakout labels |
| Bear Breakout Label Color | Red (25% transparent) | Background color for bearish breakout labels |
### How Enhanced FBR Works
1. **Clean Breakout Detection**: A clean breakout occurs when price breaks AND closes outside the previous week's range
2. **FBR Blocking**: Once a clean breakout occurs in a week, FBR detection is disabled for the remainder of that week
3. **Weekly Reset**: Both clean breakout and FBR flags reset at the start of each new trading week (Sunday rollover)
### Label Types
- **"CLEAN BULL BO"** - Price broke above previous week high and closed above it
- **"CLEAN BEAR BO"** - Price broke below previous week low and closed below it
- **"FBR Day 1"** - Failed breakout retest detected, count reset to Day 1
---
## Section 4: Real-Time Day Labels
### Purpose
The real-time label shows a **live projection** of what today's day classification will be, updating throughout the trading session as price action develops.
### Settings
| Input | Default | Description |
|-------|---------|-------------|
| Enable Real-Time Day Labels | ✓ Enabled | Shows dynamic label that updates during trading |
| Real-Time Label Position | Right | Position of label relative to current candle |
| Real-Time Label Background | Yellow (20% transparent) | Background color |
| Real-Time Label Text | White | Text color |
### Label Text Meanings
| Label | Meaning |
|-------|---------|
| LIVE: GSD Day X | Projected Green Setup Day (after 2+ red days) |
| LIVE: GD Day X | Projected Green Day (continuing green trend) |
| LIVE: RSD Day X | Projected Red Setup Day (after 2+ green days) |
| LIVE: RD Day X | Projected Red Day (continuing red trend) |
| LIVE: INSIDE DAY | Price range is entirely within previous day's range |
| LIVE: FBR - GSD Day 1 | Bullish failed breakout retest detected |
| LIVE: FBR - RSD Day 1 | Bearish failed breakout retest detected |
| LIVE: ... CLEAN BULL BO | Clean bullish breakout detected |
| LIVE: ... CLEAN BEAR BO | Clean bearish breakout detected |
---
## Section 5: Daily Session Definition
### Instrument Presets
| Preset | Sunday Open | Friday Close | Rollover | Use Case |
|--------|-------------|--------------|----------|----------|
| Forex (FX Pairs) | 17:05 ET | 16:59 ET | 17:00 ET | EUR/USD, GBP/USD, etc. |
| Metals (XAU/XAG) | 18:05 ET | 16:59 ET | 17:00 ET | Gold, Silver |
| Custom | User-defined | User-defined | User-defined | Other instruments |
### Why This Matters
The indicator uses **OANDA-style daily rollover** (5 PM Eastern) rather than UTC midnight. This ensures:
- Accurate day counting for forex markets
- Correct GSD/RSD classification
- Proper weekly level calculations
### Session Break Line
| Input | Default | Description |
|-------|---------|-------------|
| Show Session Break Line | ✓ Enabled | Draws vertical line at daily rollover |
| Session Break Line Color | Black | Line color |
| Width | 2 | Line thickness (1-5) |
| Style | Solid | Solid, dashed, or dotted |
---
## Section 6: Day Labels (GSD/RSD System)
### The Core Day Counting Methodology
This is the foundation of the Madstrat Strategy:
1. **Green Day (GD)**: Daily candle closes higher than it opened
2. **Red Day (RD)**: Daily candle closes lower than it opened
3. **Green Setup Day (GSD)**: A green day that follows 2 or more consecutive red days
4. **Red Setup Day (RSD)**: A red day that follows 2 or more consecutive green days
### The Day 3 Signal
**Day 3** is when the setup is "mature" and ready for a trade:
- **GSD Day 3**: Third consecutive green day after a red sequence of 2+ days
- **RSD Day 3**: Third consecutive red day after a green sequence of 2+ days
### Settings
| Input | Default | Description |
|-------|---------|-------------|
| Max Historical Labels | 60 | Number of day labels to retain on chart |
| Show Day of Week Labels | ✓ Enabled | Shows M O N, T U E, etc. |
| Label Position | Top | Top or bottom of chart |
| Label Hour | 6 | Hour (0-23) when day labels appear |
| GSD/GD Label Background | Blue (25% transparent) | Green day label color |
| RSD/RD Label Background | Red (25% transparent) | Red day label color |
| Inside Day Label Background | Gray (25% transparent) | Inside day label color |
### Important Notes
- **Inside Days** do not increment the count - they are neutral
- **FBR events** reset the count to Day 1 and establish a new trend direction
- **Clean Breakouts** also reset to Day 1 but block further FBR detection that week
---
## Section 7: Daily Levels
Displays the previous day's key price levels:
### Available Levels
| Level | Default | Description |
|-------|---------|-------------|
| Previous Day's High (PDH) | ✓ Enabled, Blue | Highest price of previous session |
| Previous Day's Low (PDL) | ✓ Enabled, Green | Lowest price of previous session |
| Previous Day's EQ | ✓ Enabled, Black | Equilibrium (midpoint of PDH/PDL) |
| 75% Level | ✗ Disabled | 75% of previous day's range |
| 25% Level | ✗ Disabled | 25% of previous day's range |
### EQ Rejection (Critical for Signals)
The **EQ (Equilibrium)** level is crucial for signal generation:
- **Bullish EQ Rejection**: Price wicks down to touch EQ, then closes above it
- **Bearish EQ Rejection**: Price wicks up to touch EQ, then closes below it
The indicator tracks these rejections throughout the day and uses them as a key filter for both Day 3 and Pure PA signals.
---
## Section 8: Weekly Levels
### Previous Week Levels
| Level | Description |
|-------|-------------|
| PWH (Previous Week High) | Highest price of the completed previous week |
| PWL (Previous Week Low) | Lowest price of the completed previous week |
| PWEQ (Previous Week EQ) | Midpoint of PWH and PWL |
### Current Week Levels
| Level | Description |
|-------|-------------|
| WH (Week High) | Running high of the current week |
| WL (Week Low) | Running low of the current week |
| WEQ (Week EQ) | Running midpoint of current week |
### Settings
| Input | Default | Description |
|-------|---------|-------------|
| Show Weekly Levels | ✓ Enabled | Master toggle for all weekly levels |
| Show Previous Week High/Low/EQ | ✓ Enabled | PWH, PWL, PWEQ lines |
| Previous Week Line Color | Black | Color for PW levels |
| Previous Week Line Width | 2 | Thickness of PW lines |
| Show Current Week High/Low | ✓ Enabled | WH, WL lines (dashed) |
| Current Week Line Color | Blue | Color for current week levels |
| Show Weekly Level Labels | ✓ Enabled | Text labels at line ends |
| Weekly Label Size | Normal | Tiny to Huge |
| Lines & Labels End Day | Friday | Extend lines to which day |
---
## Section 9: Session Overlays
Visual boxes showing major forex trading sessions:
### Available Sessions
| Session | Default Times (ET) | Default State |
|---------|-------------------|---------------|
| Sydney | 18:00 - 02:00 | ✗ Disabled |
| Asian | 19:00 - 04:15 | ✓ Enabled |
| London | 01:00 - 11:15 | ✓ Enabled |
| New York | 07:30 - 17:15 | ✓ Enabled |
### Customization Options
For each session:
- Start/End Hour and Minute
- Timezone
- Background color (with transparency)
- Border color
- Border style (solid, dashed, dotted)
- Border width
### General Session Settings
| Input | Default | Description |
|-------|---------|-------------|
| Show Session Overlays | ✓ Enabled | Master toggle |
| Show Session Names on Boxes | ✓ Enabled | Display "Sydney", "Asia", etc. |
| Session Box Border Width | 1 | Border thickness |
| Session Name Text Color | Black | Label text color |
| Session Name Size | Normal | Tiny to Huge |
---
## Section 10: Chart Visuals (Moving Averages)
### Available Moving Averages
| MA | Default | Default Color | Purpose |
|----|---------|---------------|---------|
| 9 EMA | ✓ Shown | Green | Fast trend |
| 18 EMA | ✓ Shown | Orange | Medium trend |
| 50 EMA | ✓ Shown | Blue | Slow trend |
| 50 SMA | ✓ Shown | Purple | Alternative slow trend |
| 200 EMA | ✗ Hidden | Red | Long-term trend |
### EMA Alignment Requirement
For signals to fire, the EMAs must be properly "stacked":
**Bullish Alignment:**
```
Price > 9 EMA > 18 EMA > 50 EMA
```
**Bearish Alignment:**
```
Price < 9 EMA < 18 EMA < 50 EMA
```
This alignment must be present on **both** the LTF (15m or 30m) **and** the HTF (1hr or 2hr) for a signal to generate.
---
## Section 11: Signal Filters
### EQ Rejection Recency
| Input | Default | Description |
|-------|---------|-------------|
| EQ Rejection Recency (bars) | 4 | EQ rejection must occur within this many bars |
On a 15-minute chart, 4 bars = 1 hour. This ensures the EQ rejection is "fresh" and relevant.
### Session Filter
| Input | Default | Description |
|-------|---------|-------------|
| Enable Session Filter | ✗ Disabled | Only allow signals during selected sessions |
| Allow Sydney Session Signals | ✓ Enabled | (Only applies if filter enabled) |
| Allow Asian Session Signals | ✓ Enabled | |
| Allow London Session Signals | ✓ Enabled | |
| Allow New York Session Signals | ✓ Enabled | |
### ADX Filter
| Input | Default | Description |
|-------|---------|-------------|
| Enable ADX Filter | ✓ Enabled | Require minimum trend strength |
| ADX Threshold | 20.0 | Minimum ADX value (5.0 - 50.0) |
The ADX (Average Directional Index) measures trend strength. Values above 20-25 indicate a trending market suitable for directional trades.
---
## Section 12: Signal Types Explained
### Day 3 Signals (Primary)
Day 3 signals come in two forms:
#### Day 3 Detected (Live)
Fires when the **current day is projected** to become Day 3 based on real-time price action. This is an early signal that may change if the daily candle reverses before close.
#### Day 3 Confirmed
Fires when Day 3 has been **officially confirmed** by the previous day's close. This is a more reliable signal as the day count is locked in.
**Requirements for Day 3 Buy:**
1. GSD Count = 3 (confirmed) OR Projected GSD Count = 3 (live)
2. Not an inside day (current or previous)
3. Recent bullish EQ rejection (within recency bars)
4. Bullish EMA alignment on LTF
5. Bullish EMA alignment on HTF
6. Adequate candle body (not all wick)
7. ADX above threshold (if enabled)
8. Within allowed session (if filter enabled)
9. Signal spacing requirement met
10. Less than 3 Day 3 signals already today for this combo
**Day 3 Sell** - Same requirements but bearish (RSD Count = 3, bearish alignment, bearish EQ rejection)
### Pure PA Signals (Secondary)
Pure PA signals also come in two forms:
#### Pure PA Detected (LTF Only)
Fires when the **lower timeframe conditions** are met but HTF confirmation is still pending. This is an early warning that a full signal may be imminent.
#### Pure PA Confirmed (LTF + HTF)
Fires when **both LTF and HTF** conditions are aligned. This is the full confirmation signal.
**Requirements for Pure PA Buy:**
1. Recent bullish EQ rejection
2. Bullish EMA alignment on LTF (Price > 9 > 18 > 50)
3. Bullish EMA alignment on HTF (Price > 9 > 18 > 50)
4. Adequate candle body ratio (≥30%)
5. ADX above threshold on LTF
6. Not currently an inside day
7. Signal spacing requirement met
8. Less than 3 Pure PA signals already today for this combo
9. Within allowed session (if filter enabled)
**Pure PA Sell** - Same requirements but bearish
---
## Section 13: Trade Levels
When a signal fires, the indicator can draw:
| Level | Style | Description |
|-------|-------|-------------|
| Stop Loss (SL) | Red dashed | Entry price ± (ATR × 1.5) |
| Take Profit 1 | Green dashed | 1:1 Risk/Reward |
| Take Profit 2 | Green dotted | 2:1 Risk/Reward |
| Take Profit 3 | Green dotted | 3:1 Risk/Reward |
These levels use a 14-period ATR for the stop loss calculation.
---
## Section 14: Debug Table
Enable **Show Debug Table** to display real-time diagnostic information:
### Information Displayed
| Category | Variables |
|----------|-----------|
| Day Counting | GSD Count, RSD Count, Projected GSD, Projected RSD |
| Day State | Is Projected D3?, Currently Inside?, Week Has FBR?, Clean Breakout (Week)? |
| 15m/1hr Combo | LTF Bull/Bear Positioning, HTF Bull/Bear Positioning, D3/PA Signals Today, Signal Spacing OK |
| 30m/2hr Combo | LTF Bull/Bear Positioning, HTF Bull/Bear Positioning, D3/PA Signals Today, Signal Spacing OK |
| Shared | EQ Rejection Recent (Bull/Bear), Session Filter OK, 15m ADX, 30m ADX, Trade Levels Source |
Green cells = condition met (true)
Red cells = condition not met (false)
Gray cells = informational values
---
## Section 15: Alert Settings
The indicator features a comprehensive **enhanced alert system** with granular control over when and how alerts fire.
### Alert Settings Inputs
| Input | Default | Description |
|-------|---------|-------------|
| Enable Dynamic Alerts | ✓ Enabled | Master toggle for all dynamic alerts with detailed messages |
| Day 3 Detected (Live) | ✓ Enabled | Alert when Day 3 is projected based on current price action |
| Day 3 Confirmed | ✓ Enabled | Alert when Day 3 is officially confirmed |
| Pure PA Detected (LTF) | ✓ Enabled | Alert when LTF conditions are met (early warning) |
| Pure PA Confirmed (LTF+HTF) | ✓ Enabled | Alert when both LTF and HTF conditions align |
### Alert Message Format
All dynamic alerts follow a standardized format for easy parsing:
```
TYPE | SYMBOL @ PRICE | DAY_CLASS | SESSION | DIRECTION | COMBO
```
**Example alerts:**
```
D3 DETECTED | EURUSD @ 1.08542 | GSD Day 3 | London | BUY | 15m/1hr
D3 CONFIRMED | GBPJPY @ 192.456 | RSD Day 3 | New York | SELL | 30m/2hr
PA DETECTED | XAUUSD @ 2345.67 | GSD Day 2 | Asian | BUY | 15m/1hr (LTF only)
PA CONFIRMED | EURJPY @ 164.123 | RSD Day 1 | London | SELL | 30m/2hr
```
### Alert Types Explained
| Alert Type | Meaning | Use Case |
|------------|---------|----------|
| **D3 DETECTED** | Day 3 projected based on current candle | Early entry opportunity; may invalidate if candle reverses |
| **D3 CONFIRMED** | Day 3 locked in from previous close | Higher confidence entry; day count is confirmed |
| **PA DETECTED** | LTF alignment met, waiting for HTF | Heads-up alert; prepare for potential entry |
| **PA CONFIRMED** | Both LTF and HTF aligned | Full confirmation; ready to execute |
### TradingView Alert Dialog Options
When creating an alert in TradingView, you'll see these condition options in the dropdown:
#### Day 3 Detected (Live Projection)
- D3 Detected: Buy 15m/1hr
- D3 Detected: Sell 15m/1hr
- D3 Detected: Buy 30m/2hr
- D3 Detected: Sell 30m/2hr
#### Day 3 Confirmed
- D3 Confirmed: Buy 15m/1hr
- D3 Confirmed: Sell 15m/1hr
- D3 Confirmed: Buy 30m/2hr
- D3 Confirmed: Sell 30m/2hr
#### Pure PA Detected (LTF Only)
- PA Detected: Buy 15m/1hr
- PA Detected: Sell 15m/1hr
- PA Detected: Buy 30m/2hr
- PA Detected: Sell 30m/2hr
#### Pure PA Confirmed (LTF + HTF)
- PA Confirmed: Buy 15m/1hr
- PA Confirmed: Sell 15m/1hr
- PA Confirmed: Buy 30m/2hr
- PA Confirmed: Sell 30m/2hr
#### Combined Alerts (Any Combo)
- D3 Detected: Any Buy
- D3 Detected: Any Sell
- D3 Confirmed: Any Buy
- D3 Confirmed: Any Sell
- PA Confirmed: Any Buy
- PA Confirmed: Any Sell
#### Master Alerts
- ALL Day 3: Any Buy
- ALL Day 3: Any Sell
- ALL PA: Any Buy
- ALL PA: Any Sell
### Setting Up Alerts
1. **Click the Alert icon** in TradingView (or press Alt+A)
2. **Select the indicator** "Madstrat Strategy - Dual TF"
3. **Choose the condition** from the dropdown (e.g., "D3 Confirmed: Any Buy")
4. **Configure notification options** (popup, email, webhook, etc.)
5. **Set alert name** and click "Create"
### Recommended Alert Configurations
**Conservative Approach:**
- Enable only "Day 3 Confirmed" and "PA Confirmed" alerts
- These fire after full confirmation on both timeframes
**Aggressive Approach:**
- Enable all alert types including "Detected" alerts
- Get early warnings but verify manually before entry
**Session-Specific:**
- Create separate alerts for each session you trade
- Use the session filter to limit when signals can fire
---
## Section 16: Signal Identification on Chart
| Shape | Text | Meaning |
|-------|------|---------|
| ▲ Triangle Up | D3-15 | Day 3 Buy from 15m/1hr combo |
| ▲ Triangle Up | D3-30 | Day 3 Buy from 30m/2hr combo |
| ▼ Triangle Down | D3-15 | Day 3 Sell from 15m/1hr combo |
| ▼ Triangle Down | D3-30 | Day 3 Sell from 30m/2hr combo |
| ◆ Diamond | PA-15 | Pure PA signal from 15m/1hr combo |
| ◆ Diamond | PA-30 | Pure PA signal from 30m/2hr combo |
---
## Quick Start Guide
### Recommended Setup for Forex
1. **Timeframe**: Apply indicator to a 15-minute chart
2. **Instrument Preset**: Select "Forex (FX Pairs)"
3. **Enable both** 15m/1hr and 30m/2hr signals initially
4. **Trade Levels Source**: "Most Recent"
5. **ADX Filter**: Enabled with threshold 20
6. **Alerts**: Enable "D3 Confirmed" and "PA Confirmed" for reliable signals
### Reading Signals
1. Look for **Day 3 signals** (triangles) as primary entries
2. Use **Pure PA signals** (diamonds) as supplementary entries
3. Check the debug table to understand why signals did/didn't fire
4. Reference the real-time day label to anticipate upcoming Day 3 opportunities
### Alert Strategy
**For active monitoring:**
- Enable "Detected" alerts as early warnings
- Manually verify conditions before entry
**For set-and-forget:**
- Enable only "Confirmed" alerts
- Trust the full confirmation system
---
## Troubleshooting
### No Signals Appearing?
Check the debug table for:
1. **EQ Rejection Recent** - Is there a recent EQ rejection?
2. **LTF/HTF Positioning** - Are EMAs properly aligned?
3. **GSD/RSD Count** - Is it actually Day 3?
4. **Currently Inside?** - Inside days block signals
5. **Signal Spacing OK** - Has enough time passed since last signal?
6. **ADX value** - Is it above the threshold?
### Day Labels Not Matching Expected Count?
- Verify **Instrument Preset** matches your trading instrument
- Check if an **FBR** or **Clean Breakout** reset the count
- **Inside days** don't increment the count
- Week resets occur at **Sunday 5 PM ET** for forex
### Alerts Not Firing?
1. Ensure **Enable Dynamic Alerts** is checked
2. Verify the specific alert type is enabled (D3 Detected, D3 Confirmed, etc.)
3. Check that the alert condition is properly set up in TradingView
4. Confirm signal filters (session, ADX) aren't blocking the signal
### Understanding Detected vs Confirmed
| Scenario | Detected Alert | Confirmed Alert |
|----------|----------------|-----------------|
| Current day projected to be Day 3, candle still open | ✓ Fires | ✗ Won't fire |
| Previous day closed as Day 3, conditions met today | ✓ May fire | ✓ Fires |
| LTF aligned, HTF not yet aligned | ✓ PA Detected fires | ✗ PA Confirmed won't fire |
| Both LTF and HTF aligned | ✓ May fire | ✓ PA Confirmed fires |
---
## Glossary
| Term | Definition |
|------|------------|
| **GSD** | Green Setup Day - Green day following 2+ red days |
| **RSD** | Red Setup Day - Red day following 2+ green days |
| **GD** | Green Day - Regular green day (not a setup) |
| **RD** | Red Day - Regular red day (not a setup) |
| **FBR** | Failed Breakout Retest - Price breaks weekly level but closes back inside |
| **EQ** | Equilibrium - Midpoint of previous day's range |
| **LTF** | Lower Timeframe (15m or 30m) |
| **HTF** | Higher Timeframe (1hr or 2hr) |
| **PWH/PWL** | Previous Week High/Low |
| **PDH/PDL** | Previous Day High/Low |
| **Clean Breakout** | Price breaks AND closes outside previous week's range |
---
This documentation covers the complete functionality of the Madstrat Strategy - Dual TF indicator including the enhanced alert system. For further assistance with specific scenarios or edge cases, enable the debug table and analyse the real-time variable states.
Liquidity Sweep & FVG StrategyThis strategy combines higher-timeframe liquidity levels, stop-hunt (sweep) logic, Fair Value Gaps (FVGs) and structure-based take-profits into a single execution engine.
It is not a simple mash-up of indicators: every module (HTF levels, sweeps, FVGs, ZigZag, sessions) feeds the same entry/exit logic.
1. Core Idea
The script looks for situations where price:
Sweeps a higher-timeframe high/low (takes liquidity around obvious levels),
Then forms a displacement candle with a gap (FVG) in the opposite direction,
Then uses the edge of that FVG as a limit entry,
And manages exits using unswept structural levels (ZigZag swings or HTF levels) as targets.
The intent is to systematically trade failed breakouts / stop hunts with a defined structure and risk model.
It is a backtesting / study tool, not a signal service.
2. How the Logic Works (Conceptual)
a) Higher-Timeframe Liquidity Engine
Daily, Weekly and Monthly highs/lows are pulled via request.security() and stored as HTF liquidity levels.
Each level is drawn as a line with optional label (1D/1W/1M High/Low).
A level is marked as “swept” once price trades through it; swept levels may be removed or shortened depending on settings.
b) Sweep & Manipulation Filter
A low sweep occurs when the current low trades through a stored HTF low.
A high sweep occurs when the current high trades through a stored HTF high.
If both a high and a low are swept in the same bar, the script flags this as “manipulation” and blocks new entries around that noise.
The script also tracks the sweep wick, bar index and HTF timeframe for later use in SL placement and labels.
c) FVG Detection & Management
FVGs are defined using a 3-candle displacement model:
Bullish FVG: high < low
Bearish FVG: low > high
Only gaps larger than a minimum size (ATR-based if no manual value is set) are kept.
FVGs are stored in arrays as boxes with: top, bottom, mid (CE), direction, and state (filled / reclaimed).
Boxes are auto-extended and visually faded when price is far away, or deleted when filled.
d) Entry Conditions (Sweep + FVG)
For each recent sweep window:
After a low sweep, the script searches for the nearest bullish FVG below price and uses its top edge as a long limit entry.
After a high sweep, it searches for the nearest bearish FVG above price and uses its bottom edge as a short limit entry.
A “knife protection” check blocks trades where price is already trading through the proposed stop.
Only one entry per sweep is allowed; entries are only placed inside the configured NY trading sessions and only if no manipulation flag is active and EOD protection allows it.
e) Stop-Loss Placement (“Tick-Free” SL)
The stop is not placed directly on the HTF level; instead, the script scans a window around the sweep bar to find a local extreme:
Longs: lowest low in a configurable bar window around the sweep.
Shorts: highest high in that window.
This produces a structure-based SL that is generally outside the main sweep wick.
f) Take-Profit Logic (ZigZag + HTF Levels)
A lightweight ZigZag engine tracks swing highs/lows and removes levels that have already been broken.
For intraday timeframes (< 1h), TP candidates come from unswept ZigZag swings above/below the entry.
For higher timeframes (≥ 1h), TP candidates fall back to unswept HTF liquidity levels.
The script picks up to two targets:
TP1: nearest valid target in the trade direction (or a 2R fallback if none exists),
TP2: second target (or a 4R fallback if none exists).
A multi-TP model is used: typically 50% at TP1, remainder managed towards TP2 with breakeven plus offset once TP1 is hit.
g) Session & End-of-Day Filters
Three predefined NY sessions (Early, Open, Afternoon) are available; entries are only allowed inside active sessions.
An End-of-Day filter checks a user-defined NY close time and:
Blocks new entries close to the end of the day,
Optionally forces flat before the close.
3. Inputs Overview (Conceptual)
Liquidity settings: which HTF levels to track (1D/1W/1M), how many to show, and sweep priority (highest TF vs nearest vs any).
FVG settings: visibility radius, search window after a sweep, minimum FVG size.
ZigZag settings: swing length used for TP discovery.
Execution & protection: limit order timeout, breakeven offset, EOD protection.
Visuals: labels, sweep markers, manipulation warning, session highlighting, TP lines, etc.
For exact meaning of each input, please refer to the inline comments in the open-source code.
4. Strategy Properties & Backtesting Notes
Default strategy properties in this script:
Initial capital: 100,000
Order size: 10% of equity (strategy.percent_of_equity)
Commission: 0.01% per trade (adjust as needed for your broker/asset)
Slippage: must be set manually in the Strategy Tester (recommended: at least a few ticks on fast markets).
Even though the order size is 10% of equity, actual risk per trade depends on the SL distance and is typically much lower than 10% of the account. You should still adjust these values to keep risk within what you personally consider sustainable (e.g. somewhere in the 1–2% range per trade).
For more meaningful results:
Test on liquid instruments (e.g. major indices, FX, or liquid futures).
Use enough history to reach 100+ closed trades on your market/timeframe.
Always include realistic commission and slippage.
Do not assume that past performance will continue.
5. How to Use
Apply the strategy to your preferred symbol and timeframe.
Set broker-like commission and slippage in the Strategy Tester.
Adjust:
HTF levels (1D/1W/1M),
Sessions (NY windows),
FVG search window and minimum size,
ZigZag length and EOD filter.
Observe how entries only appear:
After a HTF sweep,
In the configured session,
At a FVG edge,
With TP lines anchored at unswept structure / liquidity.
Use this primarily as a research and backtesting tool to study how your own ICT / SMC ideas behave over a large sample of trades.
6. Disclaimer
This script is for educational and research purposes only.
It does not constitute financial advice, and it does not guarantee profitability. Always validate results with realistic assumptions and use your own judgment before trading live.






















